Example #1
0
 public static function batchAddRoute($routes)
 {
     if (!isset($routes) || empty($routes)) {
         return true;
     }
     foreach ($routes as $route) {
         if (RouteModel::isExistByRoute($route) == true) {
             Utils::dump('Added: ' . $route);
         } else {
             RouteModel::addOneSystemRoute($route);
             Utils::dump('New add: ' . $route);
         }
     }
     return true;
 }
Example #2
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);
     }
 }
Example #3
0
 public static function deleteOneCustomRoute($id)
 {
     $data = self::getOneCustomRoute($id);
     if ($data['type'] == self::COL_TYPE_CUSTOM) {
         return RouteModel::deleteAll('id = :id', [':id' => $id]);
     } else {
         throw new JdbRbacException('You are deleting system route. It is forbidden', 40312493);
     }
 }
 /**
  * 删除一个自定义路由 & 所有该路由的权限分配
  */
 public function actionDeleteOneCustomRoute()
 {
     try {
         $id = Yii::$app->request->post(RouteModel::COL_ID);
         RouteModel::checkId($id);
         $result = PermissionModel::deleteByRouteId($id);
         if (!$result) {
             throw new JdbRbacException('Delete permission assign fail', 50015680);
         }
         $result = RouteModel::deleteOneCustomRoute($id);
         if (!$result) {
             throw new JdbRbacException();
         }
         $result = PermissionAssignModel::deleteByRouteId($id);
         return Utils::handlerForResult($result);
     } catch (JdbRbacException $e) {
         return Utils::handlerForException($e);
     }
 }