openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

UserRightsAction.class.php (2137B)


      1 <?php
      2 namespace cms\action\user;
      3 use cms\action\Action;
      4 use cms\action\Method;
      5 use cms\action\UserAction;
      6 use cms\model\Permission;
      7 use cms\model\BaseObject;
      8 use cms\model\Group;
      9 use cms\model\Language;
     10 use cms\model\Project;
     11 use cms\model\User;
     12 use language\Messages;
     13 
     14 
     15 class UserRightsAction extends UserAction implements Method {
     16     public function view() {
     17         $rights = $this->user->getAllAcls();
     18 
     19         $projects = array();
     20 
     21         foreach( $rights as $acl )
     22         {
     23             /* @var $acl Permission */
     24             if	( !isset($projects[$acl->projectid]))
     25 			{
     26                 $p = Project::create( $acl->projectid );
     27 
     28                 $projects[$acl->projectid] = array();
     29                 $projects[$acl->projectid]['projectname'] = $p->load()->name;
     30 				$projects[$acl->projectid]['rights'     ] = array();
     31 			}
     32 
     33 			$right = array();
     34 			
     35 			if	( $acl->languageid > 0 )
     36 			{
     37 				$language = new Language($acl->languageid);
     38 				$language->load();
     39 				$right['languagename'] = $language->name;
     40 			}
     41 			else
     42 			{
     43 				$right['languagename'] = \cms\base\Language::lang('ALL_LANGUAGES');
     44 			}
     45 			
     46 			
     47 			$o = new BaseObject($acl->objectid);
     48 			$o->objectLoad();
     49 			$right['objectname'] = $o->filename;
     50 			$right['objectid'  ] = $o->objectid;
     51 			$right['objecttype'] = $o->getType();
     52 			
     53 			if	( $acl->userid > 0 )
     54 			{
     55 				$user = new User($acl->userid);
     56 				$user->load();
     57 				$right['username'] = $user->name;
     58 			}
     59 			elseif	( $acl->groupid > 0 )
     60 			{
     61 				$group = new Group($acl->groupid);
     62 				$group->load();
     63 				$right['groupname'] = $group->name;
     64 			}
     65 			else
     66 			{
     67 			    ;
     68 				// Berechtigung fuer "alle".
     69 			}
     70 
     71 //			$show = array();
     72 //			foreach( $acl->getProperties() as $p=>$set)
     73 //				$show[$p] = $set;
     74 //				
     75 //			$right['show'] = $show;
     76 			$right['bits'] = $acl->getProperties();
     77 			
     78 			$projects[$acl->projectid]['rights'][] = $right;
     79 		}
     80 		
     81 		$this->setTemplateVar('projects'    ,$projects );
     82 		
     83 		$this->setTemplateVar('show',Permission::getAvailableRights() );
     84 		
     85 		if	( $this->user->isAdmin )
     86 			$this->addWarningFor($this->user,Messages::ADMIN_NEEDS_NO_RIGHTS);
     87     }
     88     public function post() {
     89     }
     90 }