Exemplo n.º 1
0
 static function checking()
 {
     global $user, $mainframe;
     if ($user->isSuperAdmin()) {
         return true;
     }
     $backEnd = $mainframe->isBackEnd();
     $string_url = CheckPerMission::get_fullurl();
     $arr_url = CheckPerMission::get_arr_url();
     $arr_resource = CheckPerMission::getResources($backEnd, $arr_url);
     $query_user = "******" . TBL_RSM_RESOURCE_XREF . " WHERE object_type = 1 AND objectID = {$user->id}";
     $query_group = "SELECT * FROM " . TBL_RSM_RESOURCE_XREF . " WHERE object_type = 2 AND objectID = {$user->groupID}";
     $arr_granted = CheckPerMission::getGranted($user->id, 1);
     $arr_Ggranted = CheckPerMission::getGranted($user->groupID, 2);
     $table_ext = YiiTables::getInstance(TBL_EXTENSIONS);
     $ext_default_1 = $table_ext->loadColumn("name", "allowall = 1 ");
     if (count($arr_resource)) {
         // step 1: check allow user
         // neu co cho phep thi return true
         // neu khong thay noi gi thi sang s2
         foreach ($arr_resource as $resource) {
             if (in_array($resource->id, $arr_granted['allow'])) {
                 return true;
             }
         }
         // step 2: check deny user
         // neu co bi cam thi redirect
         // neu khong thay noi gi thi sang s3
         foreach ($arr_resource as $resource) {
             if (in_array($resource->id, $arr_granted['deny'])) {
                 YiiMessage::raseNotice($resource->redirect_msg);
                 Yii::app()->getRequest()->redirect($resource->redirect_url);
                 return true;
             }
         }
         // step 3: check allow group
         // neu co cho phep thi return true
         // neu khong thay noi gi thi sang s4
         foreach ($arr_resource as $resource) {
             if (in_array($resource->app, $arr_Ggranted)) {
                 return true;
             }
         }
     }
     // kiem tra mac dinh
     $cur_app = Request::getVar('app');
     if (in_array($cur_app, $ext_default_1)) {
         // neu app hien tai nam trong so app duoc phep thi return true
         return true;
     } else {
         // khong duoc truy cap
         if ($mainframe->isBackEnd()) {
             YiiMessage::raseNotice("Your account not have permissin to visit page");
             if ($cur_app == "cpanel") {
                 // ra trang chu froent-end
                 Yii::app()->getRequest()->redirect("/");
             } else {
                 Yii::app()->getRequest()->redirect("?app=cpanel");
             }
         } else {
             return true;
         }
     }
 }