Пример #1
0
 public function delete($scopeId)
 {
     $scope = $this->scopeTable->get($scopeId);
     if (!empty($scope)) {
         // check whether the scope is used by an app or user
         $appScopes = $this->appScopeTable->getCount(new Condition(['scopeId', '=', $scope['id']]));
         if ($appScopes > 0) {
             throw new StatusCode\ConflictException('Scope is assigned to an app. Remove the scope from the app in order to delete the scope');
         }
         $userScopes = $this->userScopeTable->getCount(new Condition(['scopeId', '=', $scope['id']]));
         if ($userScopes > 0) {
             throw new StatusCode\ConflictException('Scope is assgined to an user. Remove the scope from the user in order to delete the scope');
         }
         // check whether this is a system scope
         if (in_array($scope['id'], [1, 2, 3])) {
             throw new StatusCode\BadRequestException('It is not possible to change this scope');
         }
         try {
             $this->scopeTable->beginTransaction();
             // delete all routes assigned to the scope
             $this->scopeRouteTable->deleteAllFromScope($scope['id']);
             $this->scopeTable->delete(array('id' => $scope['id']));
             $this->scopeTable->commit();
         } catch (\Exception $e) {
             $this->scopeTable->rollBack();
             throw $e;
         }
     } else {
         throw new StatusCode\NotFoundException('Could not find scope');
     }
 }
Пример #2
0
 protected function insertScopes($userId, $scopes)
 {
     if (!empty($scopes) && is_array($scopes)) {
         $scopes = $this->scopeTable->getByNames($scopes);
         foreach ($scopes as $scope) {
             $this->userScopeTable->create(array('userId' => $userId, 'scopeId' => $scope['id']));
         }
     }
 }
Пример #3
0
 public function insertScopes($appId, $scopes)
 {
     if (!empty($scopes) && is_array($scopes)) {
         $scopes = $this->scopeTable->getByNames($scopes);
         foreach ($scopes as $scope) {
             $this->appScopeTable->create(array('appId' => $appId, 'scopeId' => $scope['id']));
         }
     }
 }