Ejemplo n.º 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);
     }
 }
Ejemplo n.º 2
0
 /**
  * 删除一个权限 & 所有该权限的角色分配
  */
 public function actionDeleteOnePermission()
 {
     try {
         $id = Yii::$app->request->post(PermissionModel::COL_ID);
         PermissionModel::checkId($id);
         $result = PermissionModel::deleteOnePermission($id);
         if (!$result) {
             throw new JdbRbacException();
         }
         $result = PermissionAssignModel::deleteBatchByPermissionId($id);
         return Utils::handlerForResult($result);
     } catch (JdbRbacException $e) {
         return Utils::handlerForException($e);
     }
 }
Ejemplo n.º 3
0
 public static function deleteByRouteId($routeId)
 {
     return PermissionAssignModel::deleteAll('route_id = :rid', [':rid' => $routeId]);
 }