Patch title: Release 85 bulk changes
Abstract:
File: /pliant/fullpliant/login.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/fullpliant/user.pli"


function user_update user first_name name abstract password_
  arg Str user first_name name abstract password_md5 server 
  remote server
    control c is_password_server:c
    control c not is_administrator:user
    share status
    user_database:data:user create user
    user_database2:data:user create user
    user_secret_database:data:user create user
    var Data:User u :> user_database:data:user user
    u first_name := first_name
    u name := name
    u abstract := abstract
    user_secret_database:data:user:user password_md5 := pass
  local_streaming s
    each r user_database:data:user:user:right
      s writeline "right "+(string keyof:r)+" "+(string r:au
  remote_streaming s
    var Data:User u :> user_database:data:user user
    var (Dictionary Str Void) lines
    while not s:atend
      if (s:readline parse "right" (var Str id) (var Str aut
        u:right create id
        var Data:UserRight r :> u:right id
        r auth := auth+"3" 0 ; r ip := ip ; r server := serv
        lines insert id void
    each r u:right
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/fullpliant/user.pli"


function user_update user first_name name abstract password_
  arg Str user first_name name abstract password_md5 server 
  remote server
    control c is_password_server:c
    control c not is_administrator:user
    share status
    user_database:data:user create user
    user_database2:data:user create user
    user_secret_database:data:user create user
    var Data:User u :> user_database:data:user user
    u first_name := first_name
    u name := name
    u abstract := abstract
    user_secret_database:data:user:user password_md5 := pass
  local_streaming s
    each r user_database:data:user:user:right
      s writeline "right "+(string keyof:r)+" "+(string r:au
  remote_streaming s
    var Data:User u :> user_database:data:user user
    var (Dictionary Str Void) lines
    while not s:atend
      if (s:readline parse "right" (var Str id) (var Str aut
        u:right create id
        var Data:UserRight r :> u:right id
        r auth := auth+"3" 0 ; r ip := ip ; r server := serv
        lines insert id void
    each r u:right
      if not exists:(lines keyof:r)
      if not exists:(lines first keyof:r)
        u:right delete keyof:r
  success
    status := success
  failure
    status := failure


export login_record
export user_update user_change_password user_delete
        u:right delete keyof:r
  success
    status := success
  failure
    status := failure


export login_record
export user_update user_change_password user_delete