Patch title: Release 87 bulk changes
Abstract:
File: /pliant/browse/virtual_tree.page
Key:
    Removed line
    Added line
module "/pliant/appli/file_browser.pli"
module "/pliant/appli/data_browser.pli"
module "/pliant/appli/type_browser.pli"
module "/pliant/appli/mail.pli"
module "/pliant/appli/forum.pli"
module "/pliant/util/encoding/http.pli"
module "/pliant/util/encoding/html.pli"

if (virtual_path parse "/file/" any:(var Str path)) and allowed:"browse_file"
  # Pliant files
  file_browser "/"+path options allowed:"administrator"
  file_browser "/"+path options allowed:"administrator" "/"+path
eif (virtual_path parse "/system_file/" any:(var Str path)) and allowed:"browse_system_file"
  # system files
  if allowed:"administrator"
    void
  eif (path parse "dev/" any) or (path parse "proc/" any)
    [You are now allowed to browse this file.]
    return
  eif path:len=0 or (path path:len-1)="/"
    void
  eif (path parse "bin/" any)
    void
  eif (path parse "boot/" any)
    void
  eif (path parse "lib/" any)
    void
  eif (path parse "pliant/" any)
    void
  eif (path parse "pliant_security/" any) and (http_decode:path search "_secret." -1)=(-1) and (http_decode:path search "2." -1)=(-1)
  eif (path parse "pliant_security/" any) and (path search "_secret." -1)=(-1) and (path search "2." -1)=(-1)
    void
  else
    [You are now allowed to browse this file.]
    return
  file_browser "file:/"+path options allowed:"administrator"
  file_browser "file:/"+path options allowed:"administrator" ""
eif (virtual_path parse "/data" any:(var Str path)) and allowed:"browse_data"
  # database datas
  if allowed:"administrator"
    void
  eif path="" or path="/pliant" or (path parse "/pliant/" any) and not ((html_decode http_decode:path) parse "/pliant/forum" any)
  eif path="" or path="/pliant" or (path parse "/pliant/" any) and not (path parse "/pliant/forum" any)
    void
  else
    [You are now allowed to browse this part of the database.]
    return
  data_browser http_decode:path options allowed:"administrator"
eif (virtual_path eparse "/type" any) and allowed:"browse_type"
  type_browser virtual_path
  data_browser path options allowed:"administrator"
eif (virtual_path eparse "/type/" any:(var Str name)) and allowed:"browse_type"
  type_browser name
eif (virtual_path parse "/mail" any:(var Str path)) and user_name<>""
  # mail
  mail path options
eif (virtual_path parse "/forum/" any:(var Str path)) and allowed:"browse_patch"
  # forum
  forum "/"+path options
else
  reset_http_answer