   waechter
   schemaUserShared
   idToSchemaUserTakenAsync
+  _
 ) ->
   (user, id) ->
     waechter.schemasToLazyAsyncValidator(
-      schemaUserShared
-      {rights: waechter.maybe(waechter.string)}
+      _.merge({}, schemaUserShared, {rights: waechter.undefinedOr(waechter.string)})
       idToSchemaUserTakenAsync(id)
     ) (user)

  waechter
  schemaUserShared
  idToSchemaUserTakenAsync
) ->
  waechter.schemasToLazyAsyncValidator(
    schemaUserShared
    {rights: waechter.maybe(waechter.string)}
    idToSchemaUserTakenAsync()
  )


  schemaUserShared
  schemaUserRightsForbidden
  idToSchemaUserTakenAsync
  _
) ->
  waechter.schemasToLazyAsyncValidator(
    _.merge({}, schemaUserShared, schemaUserRightsForbidden)
    idToSchemaUserTakenAsync()
  )

