Example #1
0
 /**
  * 系统内部检测user_id是否可以请求当前资源节点
  *
  * @param mixed $userId 用户ID
  * @return string
  */
 public static function isAllowed($userId, $systemId = 0)
 {
     try {
         $userAssigns = UserAssignModel::getAllByUserId($userId);
         $roleIdsArray = array_column($userAssigns, UserAssignModel::COL_ROLE_ID);
         $roleAssigns = RoleAssignModel::getAllByRoleIdsArray($roleIdsArray);
         $permissionIdsArray = array_column($roleAssigns, RoleAssignModel::COL_PERMISSION_ID);
         $permissionAssigns = PermissionAssignModel::getAllByPermissionIdsArray($permissionIdsArray);
         $routeIdsArray = array_column($permissionAssigns, PermissionAssignModel::COL_ROUTE_ID);
         $rawRoutes = RouteModel::getAllByIdsArray($routeIdsArray);
         $routes = array_column($rawRoutes, RouteModel::COL_ROUTE);
         $currentRoute = self::getRequestRoute();
         if (in_array($currentRoute, $routes)) {
             return true;
         } else {
             return false;
         }
     } catch (JdbRbacException $e) {
         return Utils::handlerForException($e);
     }
 }
 /**
  * 删除一个角色 & 所有该角色的用户分配
  */
 public function actionDeleteOneRole()
 {
     try {
         $roleId = Yii::$app->request->post(RoleModel::COL_ID);
         RoleModel::checkId($roleId);
         $result = RoleAssignModel::deleteAllByRoleId($roleId);
         if (!$result) {
         }
         $result = RoleModel::deleteOne($roleId);
         return Utils::handlerForResult($result);
     } catch (JdbRbacException $e) {
         return Utils::handlerForException($e);
     }
 }
Example #3
0
 public static function deleteAllByRoleId($roleId)
 {
     return RoleAssignModel::deleteAll('role_id = :rid', [':rid' => $roleId]);
 }