home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / rolerights.tcl < prev    next >
Text File  |  1996-05-29  |  4KB  |  123 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Westmount Technology    1994
  4. #
  5. #      File:           @(#)rolerights.tcl    1.7
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)rolerights.tcl    1.7   26 Mar 1996 Copyright 1994 Westmount Technology
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. require "accesscont.tcl"
  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 type [$this.top.row.leftCol.ruleType.row.type selected]
  63.     if {"$type" == "childRight"} {
  64.     set doChildRight 1
  65.     set actionList "[BrowserProcs::action2String 1023]"
  66.     } else {
  67.     set doChildRight 0
  68.     }
  69.  
  70.     global $this$type
  71.     foreach index $objectIndexList {
  72.     set obj [[$this selectedSet] index $index]
  73.     if {! $doChildRight} {
  74.         set actionList [$obj getInfo "Controlled Actions"]
  75.     }
  76.     foreach action $actionList {
  77.         set actionIf $this.top.row.rightCol.actions.col.$action
  78.         $actionIf.label sensitive 1
  79.         $actionIf.access sensitive [$this editable]
  80.     }
  81.     foreach role $roleList {
  82.         foreach action $actionList {
  83.         if [info exists ${this}${type}($index,$role,$action)] {
  84.             case "[set ${this}${type}($index,$role,$action)]" in {
  85.             Allowed {
  86.                 set allowed [$this getAllowed $action]
  87.                 $this setAllowed $action [incr allowed]
  88.             }
  89.             Prohibited {
  90.                 set prohibited [$this getProhibited $action]
  91.                 $this setProhibited $action [incr prohibited]
  92.             }
  93.             }
  94.         }
  95.         }
  96.  
  97.         if $doChildRight {
  98.         set roleRight [$obj findNewChildRight "$role"]
  99.         } else {
  100.         set roleRight [$obj findRight "$role"]
  101.         }
  102.         if {! [$roleRight isA RoleRight]} continue
  103.  
  104.         foreach action \
  105.         [BrowserProcs::action2String [$roleRight allowedActions]] {
  106.         if [info exists ${this}${type}($index,$role,$action)] continue
  107.         set allowed [$this getAllowed $action]
  108.         $this setAllowed $action [incr allowed]
  109.         }
  110.         foreach action \
  111.         [BrowserProcs::action2String [$roleRight prohibitedActions]] {
  112.         if [info exists ${this}${type}($index,$role,$action)] continue
  113.         set prohibited [$this getProhibited $action]
  114.         $this setProhibited $action [incr prohibited]
  115.         }
  116.     }
  117.     }
  118.     $this AccessControlDlg::updateActionsIf
  119. }
  120.  
  121. # Do not delete this line -- regeneration end marker
  122.  
  123.