Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2015 the original author or authors
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * 	http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.clusterra.iam.core.application.role;
 
 import  org.springframework.beans.factory.annotation.Autowired;
 import  org.springframework.stereotype.Component;
 import  org.springframework.transaction.annotation.Transactional;
 
 import java.util.Set;

Author(s):
Alexander Fyodorov
Denis Kuchugurov
 
 @Component
 public class ActionServiceImpl implements ActionService {
 
     @Autowired
 
     @Autowired
     private RoleRepository roleRepository;
 
     @Autowired
 
 
     @Transactional
     public ActionDescriptor createAction(String actionNamethrows ActionAlreadyExistsException {
         if (.findByName(actionName) != null) {
             throw new ActionAlreadyExistsException(actionName);
         }
         Action action = new Action(actionName);
         .save(action);
         return new ActionDescriptor(action.getId(), action.getName());
     }
 
 
     @Transactional
     public void deleteAction(ActionDescriptor actionDescriptor) {
         .delete(.findOne(actionDescriptor.getActionId()));
     }
 
     @Transactional
     public Set<ActionDescriptorfindAllActions() {
         Iterable<Actionactions = .findAll();
         Set<ActionDescriptorresult = new HashSet<>();
         for (Action action : actions) {
             result.add(new ActionDescriptor(action.getId(), action.getName()));
         }
         return result;
     }
 
 
     @Transactional
     public void allowActionForRole(ActionDescriptor actionDescriptorRoleDescriptor roleDescriptorthrows ActionAlreadyAllowedException {
         Validate.notNull(actionDescriptor"action is null, but required");
         Validate.notNull(roleDescriptor"role is null, but required");
         if (isActionAllowed(actionDescriptorroleDescriptor)) {
             throw new ActionAlreadyAllowedException(actionDescriptorroleDescriptor);
         }
         Role r = .findOne(roleDescriptor.getRoleId());
         Action a = .findOne(actionDescriptor.getActionId());
 
         Authorization authorization = new Authorization(ra);
 
         .save(authorization);
     }
 
 
     @Transactional
     public void disallowActionForRole(ActionDescriptor actionDescriptorRoleDescriptor roleDescriptor) {
         Validate.notNull(actionDescriptor"action is null, but required");
         Validate.notNull(roleDescriptor"role is null, but required");
         Authorization authorization = .findByActionIdAndRoleId(actionDescriptor.getActionId(), roleDescriptor.getRoleId());
 
         if (authorization != null) {
            .delete(authorization);
        }
    }
    @Transactional
    public Set<ActionDescriptorfindActionsByRole(RoleDescriptor roleDescriptor) {
        Validate.notNull(roleDescriptor"role is null, but required");
        Set<Authorizationauthorizations = .findByRoleId(roleDescriptor.getRoleId());
        Set<ActionDescriptorresult = new HashSet<>(authorizations.size());
        for (Authorization authorization : authorizations) {
            result.add(new ActionDescriptor(authorization.getAction().getId(), authorization.getAction().getName()));
        }
        return result;
    }
    @Transactional
    public Set<RoleDescriptorfindRolesByAction(ActionDescriptor actionDescriptor) {
        Set<Authorizationauthorizations = .findByActionId(actionDescriptor.getActionId());
        Set<RoleDescriptorresult = new HashSet<>(authorizations.size());
        for (Authorization authorization : authorizations) {
            Role role = authorization.getRole();
            result.add(new RoleDescriptor(role.getId(), role.getName()));
        }
        return result;
    }
    @Transactional
    public boolean isActionAllowed(ActionDescriptor actionDescriptorRoleDescriptor roleDescriptor) {
        Authorization authorization = .findByActionIdAndRoleId(actionDescriptor.getActionId(), roleDescriptor.getRoleId());
        return authorization != null;
    }
    @Transactional
    public ActionDescriptor findActionByName(String actionName) {
        Action action = .findByName(actionName);
        return action == null ? null : new ActionDescriptor(action.getId(), action.getName());
    }
New to GrepCode? Check out our FAQ X