/[cvs]/bareface/yakka/library/YakkaPermitableObject.php
ViewVC logotype

Contents of /bareface/yakka/library/YakkaPermitableObject.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Sun Jan 5 00:22:25 2003 UTC (22 years ago) by bareface
Branch: MAIN
CVS Tags: HEAD
init;

1 <?php
2
3 require_once("YakkaSerializableObject.php");
4
5 class YakkaPermitableObject extends YakkaSerializableObject {
6 var $permissionStorage;
7
8 function YakkaPermitableObject($id) {
9 $$singleton = YAKKA_GLOBAL_SINGLETON;
10 global $singleton;
11 $this->permissionStorage = &$singleton->permissionStorage;
12
13 $this->YakkaSerializableObject($id);
14 }
15
16 function allows($user, $privilege) {
17 if ($this->hasUserGrants($user, $privilege))
18 return true;
19 else
20 return ($this->hasRoleGrants($user, $privilege) && !$this->hasRevokes($user, $privilege));
21 }
22
23 function hasRoleGrants($user, $privilege) {
24 if ($roles = $user->getRoles()) {
25 while (list(,$role) = each($roles)) {
26 if ($this->permissionStorage->hasGrantPrivilege($privilege, "?", $this->getType(), $role->getId(), $role->getType()) || $this->permissionStorage->hasGrantPrivilege($privilege, $this->getId(), $this->getType(), $role->getId(), $role->getType()))
27 return true;
28 }
29 }
30
31 return false;
32 }
33
34 function hasUserGrants($user, $privilege) {
35 return ($this->permissionStorage->hasGrantPrivilege($privilege, "?", $this->getType(), $user->getId(), $user->getType())) || $this->permissionStorage->hasGrantPrivilege($privilege, $this->getId(), $this->getType(), $user->getId(), $user->getType());
36 }
37
38 function hasRevokes($user, $privilege) {
39 if ($roles = $user->getRoles()) {
40 while (list(,$role) = each($roles)) {
41 if ($this->permissionStorage->hasRevokePrivilege($privilege, $this->getId(), $this->getType(), $role->getId(), $role->getType()))
42 return true;
43 }
44 }
45
46 return $this->permissionStorage->hasRevokePrivilege($privilege, $this->getId(), $this->getType(), $user->getId(), $user->getType());
47 }
48
49 function grant($user, $privilege) {
50 return $this->permissionStorage->setGrantPrivilege($privilege, $this->getId(), $this->getType(), $user->getId(), $user->getType());
51 }
52
53 function copyGrantsOf($source) {
54 $this->permissionStorage->copyGrantPrivileges($source, $this->getType(), $this->getId(), $this->getType());
55 }
56
57 function copyRevokesOf($source) {
58 //$this->permissionStorage->copyRevokePrivileges($source, $this->getType(), $this->getId(), $this->getType());
59 }
60 }
61
62 ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed