示例#1
0
 /**
  * Hàm gán các action, controller vào role.
  */
 public function actionAddchildpermission()
 {
     $role = Yii::$app->request->get('role');
     $selection = Yii::$app->request->get('selection', []);
     $allpermission = Yii::$app->request->post('allpermission', '');
     $allpermission = explode(',', $allpermission);
     $auth = Yii::$app->authManager;
     $msg = ['status' => 1, 'msg' => 'Gán quyền thành công'];
     if (empty($role)) {
         $msg = ['status' => 0, 'msg' => 'Bạn chưa chọn role'];
     } else {
         // Them vao role nhung permission duoc chon nhung chua co trong role
         foreach ($selection as $permissionChoice) {
             $model = AuthItemChild::findOne(['child' => $permissionChoice, 'parent' => $role]);
             if (!$model) {
                 $model = new AuthItemChild();
                 $model->parent = $role;
                 $model->child = $permissionChoice;
                 if (!$model->save()) {
                     $msg = ['status' => 0, 'msg' => 'Có lỗi xảy ra khiến không thể lưu dữ liệu'];
                     break;
                 }
             }
             if (($key = array_search($permissionChoice, $allpermission)) !== false) {
                 unset($allpermission[$key]);
             }
         }
         //            echo json_encode($allpermission);die;
         // Xoa nhung permission khong duoc check trong danh sach khoi role
         AuthItemChild::deleteAll(['in', 'child', $allpermission, 'and', 'parent', $role]);
     }
     echo json_encode($msg);
     //        $allpermission = explode(',', $allpermission);
     //        foreach ($allpermission as $permission) {
     //            $childPermission = AuthItemChild::findOne(['child' => $permission, 'parent' => $role]);
     //            // Kiểm tra permission có trong list permission submit hay không.
     //            if (in_array($permission, $ids)) {
     //                if (!$childPermission) {
     //                    $child = new AuthItemChild;
     //                    $child->parent = $role;
     //                    $child->child = $permission;
     //                    if ($child->save()) {
     //                        $msg = [
     //                            'status' => 1,
     //                            'msg' => 'Gán quyền thành công',
     //                        ];
     //                    } else {
     //                        $msg = [
     //                            'status' => 0,
     //                            'msg' => 'Có lỗi xảy ra, gán quyền không thành công',
     //                        ];
     //                    }
     //                }
     //            } else { // Nếu không có trong role thì xóa.
     //                $child = new AuthItemChild;
     //                if ($child->deleteAll(['child' => $permission, 'parent' => $role])) {
     //                    $msg = [
     //                        'status' => 1,
     //                        'msg' => 'Gán quyền thành công',
     //                    ];
     //                }
     //            }
     //        }
     // Delete all child in role is permission.
     //        $auth->removeChildrenByType($role, 2);
     //
     //        foreach ($ids as $id) {
     //            $child = new AuthItemChild;
     //            $child->parent = $role;
     //            $child->child = $id;
     //            if ($child->save()) {
     //                $msg = [
     //                    'status' => 1,
     //                    'msg' => 'Gán quyền thành công',
     //                ];
     //            } else {
     //                $msg = [
     //                    'status' => 0,
     //                    'msg' => 'Có lỗi xảy ra, gán quyền không thành công',
     //                ];
     //            }
     //        }
     //        echo json_encode($msg);
 }