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

  1. #---------------------------------------------------------------------------
  2. #
  3. #    (c) Cayenne Software Inc. 1997
  4. #
  5. #    File:        %W%
  6. #    Author:        M. van Leeuwen
  7. #    Description:    Report on security
  8. #    Usage in:    Corporate to System Level
  9. #
  10. #---------------------------------------------------------------------------
  11. # SccsId = %W%    %G%    Copyright 1997 Cayenne Software Inc.
  12.  
  13.  
  14. Class ReportRoles : {ReportBase} {
  15.     constructor
  16.  
  17.     method printRoles
  18.     method printUsers
  19.  
  20.     method corporateReport
  21.     method projectReport
  22.     method configReport
  23.     method phaseReport
  24.     method systemReport
  25. }
  26.  
  27.  
  28. constructor ReportRoles {class this} {
  29.     set this [ReportBase::constructor $class $this]
  30.     $this reportName "Roles and Users"
  31.     return $this
  32. }
  33.  
  34. method ReportRoles::printUsers {this} {
  35.     set report [$this report]
  36.     set corp   [$this corporate]
  37.     
  38.     $report header {
  39.     $report print User 16
  40.     $report print SecurityLevel 36
  41.     $report print "Activated roles" line
  42.     $report print - 80 fill line
  43.     }
  44.  
  45.     foreach user [osort name [$corp users]] {
  46.         $report print [$user name] 15
  47.         $report space
  48.         $report print "Corporate '[$corp name]'" 35
  49.         $report space
  50.  
  51.         set cnt 0
  52.         foreach rolelink [$corp roleLinks $user] {
  53.             if ![$report queued] { $report space 52 }
  54.             $report print [[$rolelink role] name] 15
  55.             $report space
  56.             incr cnt
  57.             if {$cnt > 4 } { $report line }
  58.     }
  59.     if [$report queued] { $report line }
  60.  
  61.         foreach proj [$corp projects] {
  62.         $report space 16
  63.         $report print "Project   '[$proj name]'" 35
  64.         $report space
  65.  
  66.         set cnt 0
  67.         foreach rolelink [$proj roleLinks $user] {
  68.         if ![$report queued] { $report space 52 }
  69.         $report print [[$rolelink role] name] 15
  70.         $report space
  71.         incr cnt
  72.         if {$cnt > 3 } { $report line }
  73.         }
  74.         if [$report queued] { $report line }
  75.     }
  76.     $report line
  77.     }
  78.     $report line
  79. }
  80.  
  81. method ReportRoles::printRoles {this} {
  82.     set report [$this report]
  83.     set corp   [$this corporate]
  84.     
  85.     $report header {
  86.     $report print Role 16
  87.     $report print SecurityLevel 36
  88.     $report print User 16
  89.     $report print Use line
  90.     $report print - 80 fill line
  91.     }
  92.  
  93.     foreach role [osort name [$corp roles]] {
  94.         $report print [$role name] 15
  95.         $report space
  96.         $report print "Corporate '[$corp name]'" 35
  97.         $report space
  98.         foreach user [$role users $corp] {
  99.             if ![$report queued] { $report space 52 }
  100.             $report print [$user name] 15
  101.             $report space
  102.             set link [$role findUserLink $corp [$user name]]
  103.             if ![$link isNil] {
  104.         $report print [$link use]
  105.         } else {
  106.         $report print "?"
  107.         }
  108.             $report line
  109.     }
  110.         foreach proj [$corp projects] {
  111.         $report space 16
  112.         $report print "Project   '[$proj name]'" 35
  113.         $report space
  114.  
  115.         foreach user [$role users $proj] {
  116.         if ![$report queued] { $report space 52 }
  117.         $report print [$user name] 15
  118.         $report space
  119.         set link [$role findUserLink $proj [$user name]]
  120.         if ![$link isNil] {
  121.             $report print [$link use]
  122.         } else {
  123.             $report print "?"
  124.         }
  125.         $report line
  126.         }
  127.         if [$report queued] { $report line }
  128.     }
  129.     $report line
  130.     }
  131.     $report line
  132. }
  133.  
  134. method ReportRoles::corporateReport {this} {
  135.     set report [$this report]
  136.     set corp   [$this corporate]
  137.  
  138.     $this printRoles
  139.     $report page
  140.     $report remove header
  141.     $this printUsers
  142.     $report page
  143.  
  144.     return 0
  145. }
  146.  
  147. method ReportRoles::projectReport {this} {
  148.     return [$this corporateReport]
  149. }
  150.  
  151. method ReportRoles::configReport {this} {
  152.     return [$this corporateReport]
  153. }
  154.  
  155. method ReportRoles::phaseReport {this} {
  156.     return [$this corporateReport]
  157. }
  158.  
  159. method ReportRoles::systemReport {this} {
  160.     return [$this corporateReport]
  161. }
  162. # ----------------------------------------------------------------------
  163. set executeMe [ReportRoles new]
  164.