/* * Copyright 2015 herd contributors * * 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 org.finra.herd.dao; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.finra.herd.model.api.xml.NamespacePermissionEnum; import org.finra.herd.model.api.xml.UserNamespaceAuthorizationKey; import org.finra.herd.model.jpa.NamespaceEntity; import org.finra.herd.model.jpa.UserNamespaceAuthorizationEntity; @Component public class UserNamespaceAuthorizationDaoTestHelper { @Autowired private NamespaceDao namespaceDao; @Autowired private NamespaceDaoTestHelper namespaceDaoTestHelper; @Autowired private UserNamespaceAuthorizationDao userNamespaceAuthorizationDao; /** * Creates and persists a new user namespace authorization entity. * * @param userNamespaceAuthorizationKey the user namespace authorization key * @param namespacePermissions the list of namespace permissions * * @return the newly created user namespace authorization entity */ public UserNamespaceAuthorizationEntity createUserNamespaceAuthorizationEntity(UserNamespaceAuthorizationKey userNamespaceAuthorizationKey, List<NamespacePermissionEnum> namespacePermissions) { // Create a namespace entity if needed. NamespaceEntity namespaceEntity = namespaceDao.getNamespaceByCd(userNamespaceAuthorizationKey.getNamespace()); if (namespaceEntity == null) { namespaceEntity = namespaceDaoTestHelper.createNamespaceEntity(userNamespaceAuthorizationKey.getNamespace()); } return createUserNamespaceAuthorizationEntity(userNamespaceAuthorizationKey.getUserId(), namespaceEntity, namespacePermissions); } /** * Creates and persists a new user namespace authorization entity. * * @param userId the user id * @param namespaceEntity the namespace entity * @param namespacePermissions the list of namespace permissions * * @return the newly created user namespace authorization entity */ public UserNamespaceAuthorizationEntity createUserNamespaceAuthorizationEntity(String userId, NamespaceEntity namespaceEntity, List<NamespacePermissionEnum> namespacePermissions) { UserNamespaceAuthorizationEntity userNamespaceAuthorizationEntity = new UserNamespaceAuthorizationEntity(); userNamespaceAuthorizationEntity.setUserId(userId); userNamespaceAuthorizationEntity.setNamespace(namespaceEntity); userNamespaceAuthorizationEntity.setReadPermission(namespacePermissions.contains(NamespacePermissionEnum.READ)); userNamespaceAuthorizationEntity.setWritePermission(namespacePermissions.contains(NamespacePermissionEnum.WRITE)); userNamespaceAuthorizationEntity.setExecutePermission(namespacePermissions.contains(NamespacePermissionEnum.EXECUTE)); userNamespaceAuthorizationEntity.setGrantPermission(namespacePermissions.contains(NamespacePermissionEnum.GRANT)); return userNamespaceAuthorizationDao.saveAndRefresh(userNamespaceAuthorizationEntity); } }