Patch title: Release 85 bulk changes
Abstract:
File: /pliant/fullpliant/user.page
Key:
    Removed line
    Added line
   
module "/pliant/language/stream.pli"
module "/pliant/admin/md5.pli"
module "/pliant/util/crypto/rsa.pli"
module "/pliant/util/crypto/legal.pli"
module "user.pli"
module "this_computer.pli"
module "login.pli"
module "/pliant/language/context.pli"


para
  note "Users database client and server global settings for
module "/pliant/language/stream.pli"
module "/pliant/admin/md5.pli"
module "/pliant/util/crypto/rsa.pli"
module "/pliant/util/crypto/legal.pli"
module "user.pli"
module "this_computer.pli"
module "login.pli"
module "/pliant/language/context.pli"


para
  note "Users database client and server global settings for
    if not allowed:"administrator"
      read_only_mode := true
    read_only not allowed:"administrator"
    title "This computer users databse settings"
    table columns 1
      cell header [Users database server computers]
      each s this_computer:env:"pliant":"password"
        if (keyof:s parse "server" any)
          cell
            text s
    table columns 1
      cell header [Users database client computers]
      each c this_computer:env:"pliant":"password"
        if (keyof:c parse "client" any)
          cell
            text c
    input "Computer name: " (var Str name) noeol
    button "Add server" noeol
      var Int num := 1
      while exists:(this_computer:env:"pliant":"password" "s
        num += 1
      this_computer "pliant" "password" "server"+string:num 
      reload_page
    button "Remove server" noeol
      each s this_computer:env:"pliant":"password"
        if (keyof:s parse "server" any) and s=name
          this_computer:env:"pliant":"password" delete keyof
      reload_page
    button "Add client" noeol
      var Int num := 1
      while exists:(this_computer:env:"pliant":"password" "c
        num += 1
      this_computer "pliant" "password" "client"+string:num 
      reload_page
    button "Remove client"
      each c this_computer:env:"pliant":"password"
        if (keyof:c parse "client" any) and c=name
          this_computer:env:"pliant":"password" delete keyof
      reload_page
    para
      [The rule is fairly simple: when a change is applied o
      [Changes to accounts with 'administrator' right are no



table columns 5
  cell header
    [User ID]
  cell header
    [First name]
  cell header
    [Name]
  cell header
    [Description]
  cell
    void
  each u user
    var Str id := keyof u
    cell
      text id
    cell
      text u:first_name
    cell
      text u:name
    cell
      text u:abstract
      if u:homepage<>""
        small
          eol ; link "Homepage" u:homepage
    cell
      page button "Edit"
    title "This computer users databse settings"
    table columns 1
      cell header [Users database server computers]
      each s this_computer:env:"pliant":"password"
        if (keyof:s parse "server" any)
          cell
            text s
    table columns 1
      cell header [Users database client computers]
      each c this_computer:env:"pliant":"password"
        if (keyof:c parse "client" any)
          cell
            text c
    input "Computer name: " (var Str name) noeol
    button "Add server" noeol
      var Int num := 1
      while exists:(this_computer:env:"pliant":"password" "s
        num += 1
      this_computer "pliant" "password" "server"+string:num 
      reload_page
    button "Remove server" noeol
      each s this_computer:env:"pliant":"password"
        if (keyof:s parse "server" any) and s=name
          this_computer:env:"pliant":"password" delete keyof
      reload_page
    button "Add client" noeol
      var Int num := 1
      while exists:(this_computer:env:"pliant":"password" "c
        num += 1
      this_computer "pliant" "password" "client"+string:num 
      reload_page
    button "Remove client"
      each c this_computer:env:"pliant":"password"
        if (keyof:c parse "client" any) and c=name
          this_computer:env:"pliant":"password" delete keyof
      reload_page
    para
      [The rule is fairly simple: when a change is applied o
      [Changes to accounts with 'administrator' right are no



table columns 5
  cell header
    [User ID]
  cell header
    [First name]
  cell header
    [Name]
  cell header
    [Description]
  cell
    void
  each u user
    var Str id := keyof u
    cell
      text id
    cell
      text u:first_name
    cell
      text u:name
    cell
      text u:abstract
      if u:homepage<>""
        small
          eol ; link "Homepage" u:homepage
    cell
      page button "Edit"
        if not allowed:"administrator"
          read_only_mode := true
        read_only not allowed:"administrator"
        title "User '"+id+"'"
        table columns 3 border 0
          cell
            [User ID:]
          cell
            fixed text:id
          cell
            [The string the user uses to authenticate in the
            [An example is] ; fixed [ helene.tonneau]
          cell
            [First name:]
          cell
            input "" u:first_name
          cell void
          cell
            [Name:]
          cell
            input "" u:name
          cell
            [The human readable name of the user.] ; eol
            [An example is] ; fixed [ H鬨ne Tonneau]
          cell
            [Email:]
          cell
            input "" u:email
          cell
            [You may leave it blank if you prefer.]
          cell
            [Home page:]
          cell
            input "" u:homepage
          cell
            [You may leave it blank if you prefer.]
          cell
            [Contact:]
          cell
            text_input "" u:contact rows 5 columns 40
          cell
            [Other ways to contact this user (phone, fax, po
          cell
            [Password:]
          cell
            if allowed:"administrator"
              input "" (var Str password) password
          cell
            [In the users database, only the MD5 digest of t
          cell
            [Public key:]
          cell
            input "" u:public_key length 30 noeol
            if allowed:"administrator"
              button "Generate"
                title "Generate a public/private key pair fo
                var Int bits := min max_legal_key_bits 1024
                input "Number of bits: " bits length 4
                input "Key password: " (var Str password) pa
                button "Generate now"
                  rsa_generate "user:"+id bits password
                  goto_backward
                if max_legal_key_bits<10000
                  para
                    [This software cannot generate more than
                    [If you live in a country where cryptogr
                para
                  [Generating a long key pair will take a ve
                  [Let's say one hour for a 1024 bits key on
                  [If the key length is double, then the con
              var Int bits := rsa_nbbits u:public_key
              if bits=defined
                small
                  eol ; [The current key is ] ; text string:
          cell
            []
          cell
        title "User '"+id+"'"
        table columns 3 border 0
          cell
            [User ID:]
          cell
            fixed text:id
          cell
            [The string the user uses to authenticate in the
            [An example is] ; fixed [ helene.tonneau]
          cell
            [First name:]
          cell
            input "" u:first_name
          cell void
          cell
            [Name:]
          cell
            input "" u:name
          cell
            [The human readable name of the user.] ; eol
            [An example is] ; fixed [ H鬨ne Tonneau]
          cell
            [Email:]
          cell
            input "" u:email
          cell
            [You may leave it blank if you prefer.]
          cell
            [Home page:]
          cell
            input "" u:homepage
          cell
            [You may leave it blank if you prefer.]
          cell
            [Contact:]
          cell
            text_input "" u:contact rows 5 columns 40
          cell
            [Other ways to contact this user (phone, fax, po
          cell
            [Password:]
          cell
            if allowed:"administrator"
              input "" (var Str password) password
          cell
            [In the users database, only the MD5 digest of t
          cell
            [Public key:]
          cell
            input "" u:public_key length 30 noeol
            if allowed:"administrator"
              button "Generate"
                title "Generate a public/private key pair fo
                var Int bits := min max_legal_key_bits 1024
                input "Number of bits: " bits length 4
                input "Key password: " (var Str password) pa
                button "Generate now"
                  rsa_generate "user:"+id bits password
                  goto_backward
                if max_legal_key_bits<10000
                  para
                    [This software cannot generate more than
                    [If you live in a country where cryptogr
                para
                  [Generating a long key pair will take a ve
                  [Let's say one hour for a 1024 bits key on
                  [If the key length is double, then the con
              var Int bits := rsa_nbbits u:public_key
              if bits=defined
                small
                  eol ; [The current key is ] ; text string:
          cell
            []
          cell
            [Options:]
          cell
            input "" u:options length 40
          cell
            [Options might be parsed by some specific applications.]
          cell
            [Styling options:]
          cell
            input "" u:style_options length 40
          cell
            [More options used for specifying user viewing preferences.]
          cell
            [Unix user ID:]
          cell
            input "" u:uid
          cell
            []
          cell
            [Computer:]
          cell
            input "" u:computer
          cell
            [If you specify a Unix user ID and computer, the
        table columns 2 border 0
          cell [Description:]
          cell (text_input "" u:abstract rows 5 columns 60)


            [Unix user ID:]
          cell
            input "" u:uid
          cell
            []
          cell
            [Computer:]
          cell
            input "" u:computer
          cell
            [If you specify a Unix user ID and computer, the
        table columns 2 border 0
          cell [Description:]
          cell (text_input "" u:abstract rows 5 columns 60)