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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)rolerights.tcl    /main/titanic/4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)rolerights.tcl    /main/titanic/4   22 Apr 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require_module_file "accesscont.tcl" security
  15.  
  16. Class RoleRightsDlg : {AccessControlDlg} {
  17.     constructor
  18.     method destructor
  19.     method selectedObjectSetChanged
  20.     method selectedRoleSetChanged
  21.     method selectedRoleRightTypeChanged
  22.     method updateActionsIf
  23. }
  24.  
  25. constructor RoleRightsDlg {class this name} {
  26.     set this [AccessControlDlg::constructor $class $this $name]
  27.     # Start constructor user section
  28.     # End constructor user section
  29.     return $this
  30. }
  31.  
  32. method RoleRightsDlg::destructor {this} {
  33.     # Start destructor user section
  34.     # End destructor user section
  35.     $this AccessControlDlg::destructor
  36. }
  37.  
  38. method RoleRightsDlg::selectedObjectSetChanged {this} {
  39.     $this AccessControlDlg::selectedObjectSetChanged
  40.     $this updateRoleRightTypeIf
  41.     $this updateActionsIf
  42. }
  43.  
  44. method RoleRightsDlg::selectedRoleSetChanged {this} {
  45.     $this AccessControlDlg::selectedRoleSetChanged
  46.     $this updateActionsIf
  47. }
  48.  
  49. method RoleRightsDlg::selectedRoleRightTypeChanged {this} {
  50.     $this AccessControlDlg::selectedRoleRightTypeChanged
  51.     $this updateActionsIf
  52. }
  53.  
  54. method RoleRightsDlg::updateActionsIf {this} {
  55.     set roleList [$this.top.row.leftCol.roles.list selectedSet]
  56.     if [lempty $roleList] {
  57.     $this AccessControlDlg::updateActionsIf
  58.     return
  59.     }
  60.  
  61.     set objectIndexList [$this.top.row.leftCol.objects.list selectedIndexSet]
  62.     set doChildRight 0
  63.     set type ownRights
  64.     if [$this childRights] {
  65.     set type [$this.top.row.leftCol.ruleType.row.type selected]
  66.     if {"$type" == "childRight"} {
  67.         set doChildRight 1
  68.         set actionList "[BrowserProcs::action2String 1023]"
  69.     } else {
  70.         set doChildRight 0
  71.     }
  72.     }
  73.  
  74.     global $this$type
  75.     foreach index $objectIndexList {
  76.     set obj [[$this selectedSet] index $index]
  77.     if {! $doChildRight} {
  78.         set controlledActions [$obj controlledActions] 
  79.         set actionList [BrowserProcs::action2String $controlledActions]
  80.     }
  81.     foreach action $actionList {
  82.         set actionIf $this.top.row.rightCol.actions.col.$action
  83.         $actionIf.label sensitive 1
  84.         $actionIf.access sensitive [$this editable]
  85.     }
  86.     foreach role $roleList {
  87.         foreach action $actionList {
  88.         if [info exists ${this}${type}($index,$role,$action)] {
  89.             case "[set ${this}${type}($index,$role,$action)]" in {
  90.             Allowed {
  91.                 set allowed [$this getAllowed $action]
  92.                 $this setAllowed $action [incr allowed]
  93.             }
  94.             Prohibited {
  95.                 set prohibited [$this getProhibited $action]
  96.                 $this setProhibited $action [incr prohibited]
  97.             }
  98.             }
  99.         }
  100.         }
  101.  
  102.         if $doChildRight {
  103.         set roleRight [$obj findNewChildRight "$role"]
  104.         } else {
  105.         set roleRight [$obj findRight "$role"]
  106.         }
  107.         if {! [$roleRight isA RoleRight]} continue
  108.  
  109.         foreach action \
  110.         [BrowserProcs::action2String [$roleRight allowedActions]] {
  111.         if [info exists ${this}${type}($index,$role,$action)] continue
  112.         set allowed [$this getAllowed $action]
  113.         $this setAllowed $action [incr allowed]
  114.         }
  115.         foreach action \
  116.         [BrowserProcs::action2String [$roleRight prohibitedActions]] {
  117.         if [info exists ${this}${type}($index,$role,$action)] continue
  118.         set prohibited [$this getProhibited $action]
  119.         $this setProhibited $action [incr prohibited]
  120.         }
  121.     }
  122.     }
  123.     $this AccessControlDlg::updateActionsIf
  124. }
  125.  
  126. # Do not delete this line -- regeneration end marker
  127.  
  128.