ObjectRightsAction.class.php (1640B)
1 <?php 2 namespace cms\action\object; 3 use cms\action\Method; 4 use cms\action\ObjectAction; 5 use cms\base\Language; 6 use cms\model\Permission; 7 use cms\model\BaseObject; 8 use language\Messages; 9 10 11 class ObjectRightsAction extends ObjectAction implements Method { 12 13 14 public function view() { 15 $o = new BaseObject( $this->request->getId() ); 16 $o->objectLoadRaw(); 17 $this->setTemplateVar( 'show',$o->getRelatedAclTypes() ); 18 $this->setTemplateVar( 'type',$o->getType() ); 19 20 $acllist = array(); 21 22 23 foreach( $o->getAllAclIds() as $aclid ) 24 { 25 $permission = new Permission( $aclid ); 26 $permission->load(); 27 $key = 'bu'.$permission->username.'g'.$permission->groupname.'a'.$aclid; 28 $acllist[$key] = $permission->getProperties(); 29 $acllist[$key]['aclid'] = $aclid; 30 31 switch( $permission->type ) { 32 case Permission::TYPE_USER: 33 $type = 'user'; 34 $name = $permission->username; 35 break; 36 case Permission::TYPE_GROUP: 37 $type = 'group'; 38 $name = $permission->groupname; 39 break; 40 case Permission::TYPE_AUTH: 41 $type = 'auth'; 42 $name = Language::lang( Messages::USERS_AUTHENTICATED ); 43 break; 44 case Permission::TYPE_GUEST: 45 default: 46 $type = 'guest'; 47 $name = Language::lang( Messages::USERS_GUESTS ); 48 break; 49 } 50 51 $acllist[$key]['type'] = $type; 52 $acllist[$key]['name'] = $name; 53 } 54 ksort( $acllist ); 55 56 $this->setTemplateVar('acls',$acllist ); 57 58 $this->setTemplateVars( $o->getAssocRelatedAclTypes() ); 59 } 60 public function post() { 61 } 62 63 64 /** 65 * @return int Permission-flag. 66 */ 67 public function getRequiredPermission() { 68 return Permission::ACL_GRANT; 69 } 70 71 72 }