/** * 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); }