home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / crud.tcl < prev    next >
Text File  |  1997-10-10  |  2KB  |  74 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1996
  4. #
  5. #      File:           @(#)crud.tcl    /main/titanic/6
  6. #      Author:         Marcel Bancken
  7. #      Description:    Instantiation of the security handler
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)crud.tcl    /main/titanic/6   10 Oct 1997 Copyright 1996 Cayenne Software Inc.
  10.  
  11. OTShRegister::objectCustomization
  12.  
  13. source [m4_path_name tcl libocl.tcl]
  14.  
  15. require platform.tcl
  16. require procs.tcl
  17. require messagehdl.tcl
  18.  
  19. global globalModuleHandler
  20. set globalModuleHandler [ModuleHandler new]
  21. $globalModuleHandler setCurrentContext
  22. require_module_file custsechan.tcl security
  23.  
  24. proc setupAccess {securityHdlr} {
  25.     set errorMsg [$securityHdlr initialize]
  26.     if {"$errorMsg" != ""} {
  27.     if {"$errorMsg" == "stop"} return
  28.     $securityHdlr delete
  29.     wmtkfatal "FATAL: $errorMsg"
  30.     }
  31.  
  32.     $securityHdlr addUsers
  33.     $securityHdlr addRoles
  34.     $securityHdlr addUserRoleLinks
  35.     $securityHdlr updateAccess
  36. }
  37.  
  38. set securityHdlr [CustSecHandler new securityHdlr]
  39. if [[$securityHdlr project] isNil] {
  40.     $securityHdlr delete
  41.     wmtkfatal "FATAL: Not on project level"
  42. }
  43.  
  44. # In order to have access control rights to the Phases
  45. # activate role SuperUser also on project level
  46. [$securityHdlr corporate] activate SuperUser
  47. [$securityHdlr project] activate SuperUser
  48.  
  49. set argsfile [lindex $argv 0]
  50. if [[$securityHdlr config] isNil] {
  51.     if {"$argsfile" == ""} {
  52.     $securityHdlr delete
  53.     wmtkfatal "FATAL: missing argument file"
  54.     }
  55.     set fid [open [lindex $argsfile 0]]
  56.     set configs [read -nonewline $fid]
  57.     close $fid
  58.  
  59.     set cc [ClientContext::global]
  60.     foreach config $configs {
  61.     $cc downLevel $config
  62.     $securityHdlr config [$cc currentConfig]
  63.     setupAccess $securityHdlr
  64.     $cc upLevel
  65.     }
  66. } else {
  67.     setupAccess $securityHdlr
  68. }
  69.  
  70. # Cleanup
  71. if {"$argsfile" != ""} {
  72.     unlink [lindex $argsfile 0]
  73. }
  74.