コード例 #1
0
 /**
  * Get all models that should exist by default for a user.
  * 
  * @param int $user_id
  * @return \GO\Base\Db\ActiveRecord 
  */
 public static function getAllUserDefaultModels($user_id = 0)
 {
     $oldIgnoreAcl = \GO::setIgnoreAclPermissions(true);
     if (!isset(self::$_allUserDefaultModels)) {
         self::$_allUserDefaultModels = array();
         $modules = \GO::modules()->getAllModules();
         while ($module = array_shift($modules)) {
             $permissionLevel = $user_id ? Acl::getUserPermissionLevel($module->acl_id, $user_id) : 1;
             if ($permissionLevel) {
                 if ($module->moduleManager) {
                     $classes = $module->moduleManager->findClasses('model');
                     foreach ($classes as $class) {
                         if ($class->isSubclassOf('GO\\Base\\Model\\AbstractUserDefaultModel')) {
                             self::$_allUserDefaultModels[] = \GO::getModel($class->getName());
                         }
                     }
                 }
             }
         }
     }
     \GO::setIgnoreAclPermissions($oldIgnoreAcl);
     return self::$_allUserDefaultModels;
 }
コード例 #2
0
ファイル: Acl.php プロジェクト: ajaboa/crmpuan
 /**
  * Return the permission level that a user has for this ACL.
  *  
  * @param int $userId If omitted then it will check the currently logged in user and return manage permission if \GO::$ignoreAclPermissions is set.
  * @param bool $checkGroupPermissionOnly
  * @return int Permission level. See constants in Acl for values. 
  */
 public function getUserLevel($userId)
 {
     return Acl::getUserPermissionLevel($this->id, $userId);
 }