Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- proc resetUserSession {User} {
- set ::computerlevel($user) {}
- }
- array set ::label {public 0 internal 1 internal-registrar 15 internal-hr 23 internal-web 27 internal-developer 29 confidential 31 confidential-hr 63 secret 127}
- proc join {labelone labeltwo} {
- set a $::label(labelone)
- set b $::label(labeltwo)
- set c [expr $a | $b]
- if {$c == 0} {
- puts "0 public"
- }
- elseif {$c == 1} {
- puts "1 internal"
- }
- elseif {$c == 15} {
- puts "15 internal-registrar"
- }
- elseif {$c == 23} {
- puts "23 internal-hr"
- }
- elseif {$c == 27} {
- puts "27 internal-web"
- }
- elseif {$c == 29} {
- puts "29 internal-developer"
- }
- elseif {$c == 31} {
- puts "31 confidential"
- }
- elseif {$c == 63} {
- puts "63 confidential-hr"
- }
- elseif {$c == 127} {
- puts "127 secret"
- }
- else {
- puts "0 public"
- }
- }
- proc canIAccess {user file access} {
- set x $::label($::userlevel($user))
- set y $::label($::classification($file))
- set z $::label($::computerlevel($user))
- if {$x >= $y} {
- if {{$access == "w"} && $y < $z} {
- return 0
- }
- else {return 1}
- if{{$access == "r"} && $y < $z} {
- return 0
- }
- else {return 1}
- }
- }
- proc access {user file access} {
- set m $::label($::classification($file))
- set n $::label($::computerlevel($user))
- if{canIAccess($user $file $access) == 1} {
- join $m $n
- }
- else {
- puts "Cannot access file. Sorry."
- }
- }
Add Comment
Please, Sign In to add comment