Пример #1
0
 public function actionUpdateDefinePerAccount()
 {
     if (isset($_POST['account_id']) && isset($_POST['define_per_id']) && isset($_POST['status'])) {
         $acount_id = $_POST['account_id'];
         $define_per_id = $_POST['define_per_id'];
         $status = $_POST['status'];
         $module_id = $_POST['module_id'];
         if ($status == 0) {
             $defineAcount = new AccountDefinePermission();
             $defineAcount->account_id = $acount_id;
             $defineAcount->define_permission_id = $define_per_id;
             $defineAcount->module_id = $module_id;
             if ($defineAcount->save()) {
                 echo '{"status":"success"}';
             } else {
                 echo '{"status":"fail"}';
             }
         } else {
             $defineAccount = AccountDefinePermission::model()->find('account_id = ' . intval($acount_id) . ' AND define_permission_id = ' . intval($define_per_id));
             if ($defineAccount->delete()) {
                 echo '{"status":"success"}';
             } else {
                 echo '{"status":"fail"}';
             }
         }
     }
 }
    <tbody>
        <?php 
if (count($module) > 0) {
    foreach ($module as $moduleItem) {
        $definePerModule = DefinePermission::model()->getDefinePerModule($moduleItem->lb_record_primary_key);
        if (count($definePerModule->data) > 0) {
            ?>
                    <tr>
                        <td colspan="2"><?php 
            echo $moduleItem->module_name;
            ?>
</td>
                    </tr>
                    <?php 
            foreach ($definePerModule->data as $definePerModuleItem) {
                $checkstatus = AccountDefinePermission::model()->CheckDefinePerAccount($account_id, $definePerModuleItem->define_permission_id);
                if ($checkstatus) {
                    $status = 1;
                } else {
                    $status = 0;
                }
                ?>
                        <tr>
                            <td style="padding-left: 30px;"><?php 
                echo $definePerModuleItem->define_permission_name;
                ?>
</td>
                            <td style="text-align: center;"><?php 
                echo CHtml::checkBox('permission', $status, array('value' => $definePerModuleItem->define_permission_id, 'onclick' => 'updateDefinePerAccount(this.value,' . $moduleItem->lb_record_primary_key . ',' . $status . ');'));
                ?>
</td>
Пример #3
0
 public function checkFunction($module_name, $function_name, $user_id = false)
 {
     if (!$user_id) {
         $user_id = YII::app()->user->id;
     }
     $result_per = false;
     $modules = Modules::model()->find('module_directory = "' . $module_name . '"');
     if ($modules) {
         $define_permission = DefinePermission::model()->find('define_permission_name = "' . $function_name . '" AND module_id = "' . $modules->lb_record_primary_key . '"');
         if ($define_permission) {
             // Kiểm tra quyền user được gán vào roles
             $roles = AccountRoles::model()->findAll('accout_id = ' . intval($user_id));
             foreach ($roles as $roleItem) {
                 $check_define_roles = RolesDefinePermission::model()->find('role_id = ' . intval($roleItem->role_id) . ' AND define_permission_id = ' . intval($define_permission->define_permission_id));
                 if ($check_define_roles) {
                     $result_per = true;
                 }
             }
             // END role
             // Kiểm tra quyền trức tiếp user
             $check_define_permission = AccountDefinePermission::model()->find('account_id = ' . intval($user_id) . ' AND define_permission_id = ' . intval($define_permission->define_permission_id));
             if ($check_define_permission) {
                 $result_per = true;
             }
             //END
         }
     }
     return $result_per;
 }