Ejemplo n.º 1
0
 /**
  * Check if user can see this controller, used in menu
  *
  * @param int $controller_id
  * @param int $action_id
  * @return boolean
  */
 public static function can_see_this_controller($controller_id, $action_id)
 {
     $authorized = session::get(['numbers', 'authorized']);
     if (self::$controllers == null) {
         self::$controllers = application::get(['storage', 'controllers']);
     }
     if (self::$permissions == null) {
         self::handle_permissions();
     }
     if (!empty($controller_id)) {
         if (!isset(self::$controllers[$controller_id])) {
             return false;
         }
         // authorized
         if ($authorized) {
             if (empty(self::$controllers[$controller_id]['sm_controller_acl_authorized'])) {
                 return false;
             }
             // check permission
             if (!empty(self::$controllers[$controller_id]['sm_controller_acl_permission'])) {
                 // admin account can see everything
                 if (self::$flag_admin) {
                     return true;
                 }
                 // if we have permission to see the controller
                 if (empty(self::$permissions[$controller_id])) {
                     return false;
                 }
                 // if we have action
                 if (!empty($action_id)) {
                     if (empty(self::$permissions[$controller_id][$action_id])) {
                         return false;
                     }
                 }
             }
         } else {
             if (empty(self::$controllers[$controller_id]['sm_controller_acl_public'])) {
                 return false;
             }
         }
         // if we got here means we are ok
         return true;
     }
 }