org.openengsb.core.test.UserManagerStub.java Source code

Java tutorial

Introduction

Here is the source code for org.openengsb.core.test.UserManagerStub.java

Source

/**
 * Licensed to the Austrian Association for Software Tool Integration (AASTI)
 * under one or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information regarding copyright
 * ownership. The AASTI licenses this file to you 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.openengsb.core.test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.openengsb.core.api.security.model.Permission;
import org.openengsb.core.api.security.service.UserDataManager;
import org.openengsb.core.api.security.service.UserExistsException;
import org.openengsb.core.api.security.service.UserNotFoundException;

import com.google.common.base.Predicates;
import com.google.common.collect.Collections2;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;

public class UserManagerStub implements UserDataManager {

    private Map<String, Map<String, String>> credentialsData = Maps.newHashMap();
    private Map<String, Map<Class<?>, Collection<Permission>>> permissionData = Maps.newHashMap();

    @Override
    public void createUser(String username) throws UserExistsException {
        if (credentialsData.containsKey(username)) {
            throw new UserExistsException("user exists");
        }
        credentialsData.put(username, new HashMap<String, String>());
        permissionData.put(username, new HashMap<Class<?>, Collection<Permission>>());
    }

    @Override
    public void deleteUser(String username) {
        credentialsData.remove(username);
        permissionData.remove(username);
    }

    @Override
    public String getUserCredentials(String username, String key) {
        return credentialsData.get(username).get(key);
    }

    @Override
    public void setUserCredentials(String username, String type, String value) {
        credentialsData.get(username).put(type, value);
    }

    @Override
    public void removeUserCredentials(String username, String type) {
        credentialsData.get(username).remove(type);
    }

    @Override
    public List<Object> getUserAttribute(String username, String attributename) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void setUserAttribute(String username, String attributename, Object... value) {
        // TODO Auto-generated method stub

    }

    @Override
    public void removeUserAttribute(String username, String attributename) {
        // TODO Auto-generated method stub

    }

    @SuppressWarnings("unchecked")
    @Override
    public <T extends Permission> Collection<T> getPermissionsForUser(String username, Class<T> type) {
        return (Collection<T>) getPermissionsForUsername(username).get(type);
    }

    private Map<Class<?>, Collection<Permission>> getPermissionsForUsername(String username) {
        Map<Class<?>, Collection<Permission>> result = permissionData.get(username);
        if (result == null) {
            result = Maps.newHashMap();
            permissionData.put(username, result);
        }
        return result;
    }

    @Override
    public void addPermissionToUser(String username, Permission... permissions) {
        for (Permission permission : permissions) {
            Map<Class<?>, Collection<Permission>> permissionsForUsername = getPermissionsForUsername(username);
            Collection<Permission> p = permissionsForUsername.get(permission.getClass());
            if (p == null) {
                p = Sets.newHashSet();
                permissionsForUsername.put(permission.getClass(), p);
            }
            p.add(permission);
        }
    }

    @Override
    public void removePermissionFromUser(String username, Permission... permissions) {
        for (Permission permission : permissions) {
            getPermissionsForUsername(username).get(permission.getClass()).remove(permission);
        }
    }

    @Override
    public Collection<String> getUserList() {
        return credentialsData.keySet();
    }

    @Override
    public Collection<Permission> getPermissionsForUser(String username) throws UserNotFoundException {
        Collection<Collection<Permission>> values = getPermissionsForUsername(username).values();
        Collection<Permission> result = new ArrayList<Permission>();
        for (Collection<Permission> c : values) {
            result.addAll(c);
        }
        return result;
    }

    @Override
    public Collection<Permission> getAllPermissionsForUser(String username) throws UserNotFoundException {
        return getPermissionsForUser(username);
    }

    @SuppressWarnings("unchecked")
    @Override
    public <T extends Permission> Collection<T> getAllPermissionsForUser(String username, Class<T> type)
            throws UserNotFoundException {
        return (Collection<T>) Collections2.filter(getAllPermissionsForUser(username), Predicates.instanceOf(type));
    }

    @Override
    public void addPermissionSetToUser(String username, String... permission) throws UserNotFoundException {
        // TODO Auto-generated method stub

    }

    @Override
    public void removePermissionSetFromUser(String username, String... permission) throws UserNotFoundException {
        // TODO Auto-generated method stub

    }

    @Override
    public void createPermissionSet(String permissionSet, Permission... permission) {
        // TODO Auto-generated method stub

    }

    @Override
    public void addPermissionSetToPermissionSet(String permissionSetParent, String... permissionSet) {
        // TODO Auto-generated method stub

    }

    @Override
    public void removePermissionSetFromPermissionSet(String permissionSetParent, String... permissionSet) {
        // TODO Auto-generated method stub

    }

    @Override
    public Collection<String> getPermissionSetsFromPermissionSet(String permissionSet)
            throws UserNotFoundException {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Collection<Permission> getPermissionsFromPermissionSet(String permissionSet) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Collection<Permission> getAllPermissionsFromPermissionSet(String permissionSet) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void setPermissionSetAttribute(String permissionSet, String attributename, String value) {
        // TODO Auto-generated method stub

    }

    @Override
    public String getPermissionSetAttribute(String permissionSet, String attributename) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Collection<String> getPermissionSetsFromUser(String username) throws UserNotFoundException {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void addPermissionToSet(String permissionSet, Permission... permission) {
        // TODO Auto-generated method stub

    }

    @Override
    public void removePermissionFromSet(String permissionSet, Permission... permission) {
        // TODO Auto-generated method stub

    }

    @Override
    public Collection<String> getPermissionSetList() {
        // TODO Auto-generated method stub
        return null;
    }

}