package com.codesdream.ase.service; import com.codesdream.ase.component.permission.UserFunctionalPermissionContainersListGenerator; import com.codesdream.ase.component.permission.UserFunctionalScopeRelationsListGenerator; import com.codesdream.ase.model.permission.*; import com.codesdream.ase.repository.permission.FunctionalPermissionRepository; import com.codesdream.ase.repository.permission.ScopePermissionRepository; import com.codesdream.ase.repository.permission.TagRepository; import javafx.util.Pair; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collection; import java.util.Optional; @Service public class PermissionService implements IPermissionService { @Resource private TagRepository tagRepository; @Resource private FunctionalPermissionRepository functionalPermissionRepository; @Resource private ScopePermissionRepository scopePermissionRepository; @Resource private UserFunctionalPermissionContainersListGenerator userFunctionalPermissionContainersListGenerator; @Resource private UserFunctionalScopeRelationsListGenerator userFunctionalScopeRelationsListGenerator; @Override public Optional findTag(String name) { return tagRepository.findByName(name); } @Override public Optional findFunctionalPermissionContainer(String name) { return functionalPermissionRepository.findByName(name); } @Override public Optional findScopePermissionContainer(String name) { return scopePermissionRepository.findByName(name); } @Override public Collection getPermissionContainerCollections(Tag tag) { return new ArrayList<>(tag.getPermissionContainersCollections()); } @Override public Collection getTagsFromScopePermissionContainers(ScopePermissionContainer scopePermissionContainer) { return new ArrayList<>(scopePermissionContainer.getTags()); } @Override public Collection getTagsFromUser(User user) { return new ArrayList<>(user.getTags()); } @Override public Collection getFunctionPermissionContainers(PermissionContainersCollection permissionContainersCollection) { Collection permissionContainersCollections = new ArrayList(){{ add(permissionContainersCollection); }}; // 生成功能性与范围性权限容器关联对 Collection functionalScopeRelations = userFunctionalScopeRelationsListGenerator.generateFunctionalScopeRelations(permissionContainersCollections); return userFunctionalPermissionContainersListGenerator.generateFunctionalContainers(functionalScopeRelations); } @Override public Collection getUsersFromTag(Tag tag) { return null; } @Override public void addRelationItemToPermissionContainerCollectionPermissionContainerCollection(PermissionContainersCollection permissionContainersCollection, FunctionalPermissionContainer functionalPermissionContainer, ScopePermissionContainer scopePermissionContainer) { } @Override public void addRelationItemsToPermissionContainerCollectionPermissionContainerCollection(PermissionContainersCollection permissionContainersCollection, Collection> functionalScopePermissionContainerPairs) { } @Override public void addUserToTag(Tag tag, User user) { } @Override public void addUsersToTag(Tag tag, Collection users) { } @Override public void addRoleToFunctionalPermissionContainer(FunctionalPermissionContainer functionalPermissionContainer, String role) { } @Override public void addRolesToFunctionalPermissionContainer(FunctionalPermissionContainer functionalPermissionContainer, Collection roles) { } @Override public void save(Tag tag) { } @Override public void save(FunctionalPermissionContainer functionalPermissionContainer) { } @Override public void save(ScopePermissionContainer scopePermissionContainer) { } }