Search in sources :

Example 16 with User

use of org.eclipse.kapua.service.user.User in project kapua by eclipse.

the class GwtUserServiceImpl method delete.

public void delete(GwtXSRFToken xsrfToken, String accountId, GwtUser gwtUser) throws GwtKapuaException {
    checkXSRFToken(xsrfToken);
    KapuaId scopeId = KapuaEid.parseShortId(accountId);
    try {
        KapuaLocator locator = KapuaLocator.getInstance();
        UserService userService = locator.getService(UserService.class);
        User user = userService.find(scopeId, KapuaEid.parseShortId(gwtUser.getId()));
        if (user != null) {
            userService.delete(user);
        }
    } catch (Throwable t) {
        KapuaExceptionHandler.handle(t);
    }
}
Also used : KapuaLocator(org.eclipse.kapua.locator.KapuaLocator) GwtUser(org.eclipse.kapua.app.console.shared.model.GwtUser) User(org.eclipse.kapua.service.user.User) GwtUserService(org.eclipse.kapua.app.console.shared.service.GwtUserService) UserService(org.eclipse.kapua.service.user.UserService) KapuaId(org.eclipse.kapua.model.id.KapuaId)

Example 17 with User

use of org.eclipse.kapua.service.user.User in project kapua by eclipse.

the class GwtUserServiceImpl method create.

public GwtUser create(GwtXSRFToken xsrfToken, GwtUserCreator gwtUserCreator) throws GwtKapuaException {
    checkXSRFToken(xsrfToken);
    GwtUser gwtUser = null;
    try {
        KapuaLocator locator = KapuaLocator.getInstance();
        UserFactory userFactory = locator.getFactory(UserFactory.class);
        KapuaId scopeId = KapuaEid.parseShortId(gwtUserCreator.getScopeId());
        UserCreator userCreator = userFactory.newCreator(scopeId, gwtUserCreator.getUsername());
        userCreator.setDisplayName(gwtUserCreator.getDisplayName());
        userCreator.setEmail(gwtUserCreator.getEmail());
        userCreator.setPhoneNumber(gwtUserCreator.getPhoneNumber());
        // 
        // Create the User
        UserService userService = locator.getService(UserService.class);
        User user = userService.create(userCreator);
        // 
        // Create permissions
        Set<String> permissions = new HashSet<String>();
        if (gwtUserCreator.getPermissions() != null) {
            // build the set of permissions
            permissions.addAll(Arrays.asList(gwtUserCreator.getPermissions().split(",")));
        }
        UserPermissionService userPermissionService = locator.getService(UserPermissionService.class);
        UserPermissionFactory userPermissionFactory = locator.getFactory(UserPermissionFactory.class);
        PermissionFactory permissionFactory = locator.getFactory(PermissionFactory.class);
        for (String p : permissions) {
            UserPermissionCreator userPermissionCreator = userPermissionFactory.newCreator(user.getScopeId());
            userPermissionCreator.setUserId(scopeId);
            String[] tokens = p.split(":");
            String domain = null;
            Actions action = null;
            KapuaId targetScopeId = null;
            if (tokens.length > 0) {
                domain = tokens[0];
            }
            if (tokens.length > 1) {
                action = Actions.valueOf(tokens[1]);
            }
            if (tokens.length > 2) {
                targetScopeId = KapuaEid.parseShortId(tokens[2]);
            }
            Permission permission = permissionFactory.newPermission(domain, action, targetScopeId);
            userPermissionCreator.setPermission(permission);
            userPermissionService.create(userPermissionCreator);
        }
        // 
        // Create credentials
        CredentialService credentialService = locator.getService(CredentialService.class);
        CredentialFactory credentialFactory = locator.getFactory(CredentialFactory.class);
        CredentialCreator credentialCreator = credentialFactory.newCreator(scopeId, user.getId(), CredentialType.PASSWORD, gwtUserCreator.getPassword());
        credentialService.create(credentialCreator);
        // convert to GwtAccount and return
        // reload the user as we want to load all its permissions
        gwtUser = KapuaGwtConverter.convert(userService.find(user.getScopeId(), user.getId()));
    } catch (Throwable t) {
        KapuaExceptionHandler.handle(t);
    }
    return gwtUser;
}
Also used : KapuaLocator(org.eclipse.kapua.locator.KapuaLocator) GwtUser(org.eclipse.kapua.app.console.shared.model.GwtUser) User(org.eclipse.kapua.service.user.User) GwtUserService(org.eclipse.kapua.app.console.shared.service.GwtUserService) UserService(org.eclipse.kapua.service.user.UserService) Actions(org.eclipse.kapua.service.authorization.permission.Actions) PermissionFactory(org.eclipse.kapua.service.authorization.permission.PermissionFactory) UserPermissionFactory(org.eclipse.kapua.service.authorization.user.permission.UserPermissionFactory) CredentialFactory(org.eclipse.kapua.service.authentication.credential.CredentialFactory) UserFactory(org.eclipse.kapua.service.user.UserFactory) CredentialCreator(org.eclipse.kapua.service.authentication.credential.CredentialCreator) CredentialService(org.eclipse.kapua.service.authentication.credential.CredentialService) Permission(org.eclipse.kapua.service.authorization.permission.Permission) GwtUser(org.eclipse.kapua.app.console.shared.model.GwtUser) UserPermissionService(org.eclipse.kapua.service.authorization.user.permission.UserPermissionService) UserPermissionFactory(org.eclipse.kapua.service.authorization.user.permission.UserPermissionFactory) KapuaId(org.eclipse.kapua.model.id.KapuaId) UserCreator(org.eclipse.kapua.service.user.UserCreator) GwtUserCreator(org.eclipse.kapua.app.console.shared.model.GwtUserCreator) HashSet(java.util.HashSet) UserPermissionCreator(org.eclipse.kapua.service.authorization.user.permission.UserPermissionCreator)

Example 18 with User

use of org.eclipse.kapua.service.user.User in project kapua by eclipse.

the class GwtUserServiceImpl method find.

public GwtUser find(String accountId, String userIdString) throws GwtKapuaException {
    KapuaId scopeId = KapuaEid.parseShortId(accountId);
    KapuaId userId = KapuaEid.parseShortId(userIdString);
    GwtUser gwtUser = null;
    try {
        KapuaLocator locator = KapuaLocator.getInstance();
        UserService userService = locator.getService(UserService.class);
        User user = userService.find(scopeId, userId);
        if (user != null) {
            gwtUser = KapuaGwtConverter.convert(user);
        }
    } catch (Throwable t) {
        KapuaExceptionHandler.handle(t);
    }
    return gwtUser;
}
Also used : KapuaLocator(org.eclipse.kapua.locator.KapuaLocator) GwtUser(org.eclipse.kapua.app.console.shared.model.GwtUser) User(org.eclipse.kapua.service.user.User) GwtUserService(org.eclipse.kapua.app.console.shared.service.GwtUserService) UserService(org.eclipse.kapua.service.user.UserService) GwtUser(org.eclipse.kapua.app.console.shared.model.GwtUser) KapuaId(org.eclipse.kapua.model.id.KapuaId)

Example 19 with User

use of org.eclipse.kapua.service.user.User in project kapua by eclipse.

the class UserServiceImpl method delete.

@Override
public void delete(KapuaId scopeId, KapuaId userId) throws KapuaException {
    // Validation of the fields
    ArgumentValidator.notNull(userId.getId(), "id");
    ArgumentValidator.notNull(scopeId.getId(), "accountId");
    // 
    // Check Access
    AuthorizationService authorizationService = locator.getService(AuthorizationService.class);
    PermissionFactory permissionFactory = locator.getFactory(PermissionFactory.class);
    authorizationService.checkPermission(permissionFactory.newPermission(UserDomain.USER, Actions.write, scopeId));
    // Do the delete
    EntityManager em = UserEntityManagerFactory.getInstance().createEntityManager();
    try {
        // Entity needs to be loaded in the context of the same EntityManger to be able to delete it afterwards
        User userx = UserDAO.find(em, userId);
        if (userx == null) {
            throw new KapuaEntityNotFoundException(User.TYPE, userId);
        }
        User user = find(scopeId, userId);
        validateSystemUser(user.getName());
        // Ensure this is not the last admin for the account
        // FIXME-KAPUA: Ask the Authorization Service
        // UserDAO.checkForLastAccountAdministratorDelete(em, userx);
        em.beginTransaction();
        UserDAO.delete(em, userId);
        em.commit();
    } catch (Exception pe) {
        em.rollback();
        throw KapuaExceptionUtils.convertPersistenceException(pe);
    } finally {
        em.close();
    }
}
Also used : EntityManager(org.eclipse.kapua.commons.jpa.EntityManager) User(org.eclipse.kapua.service.user.User) AuthorizationService(org.eclipse.kapua.service.authorization.AuthorizationService) PermissionFactory(org.eclipse.kapua.service.authorization.permission.PermissionFactory) KapuaEntityNotFoundException(org.eclipse.kapua.KapuaEntityNotFoundException) KapuaEntityNotFoundException(org.eclipse.kapua.KapuaEntityNotFoundException) KapuaIllegalArgumentException(org.eclipse.kapua.KapuaIllegalArgumentException) KapuaException(org.eclipse.kapua.KapuaException)

Aggregations

User (org.eclipse.kapua.service.user.User)19 KapuaLocator (org.eclipse.kapua.locator.KapuaLocator)11 UserService (org.eclipse.kapua.service.user.UserService)11 PermissionFactory (org.eclipse.kapua.service.authorization.permission.PermissionFactory)9 KapuaException (org.eclipse.kapua.KapuaException)7 GwtUser (org.eclipse.kapua.app.console.shared.model.GwtUser)7 KapuaId (org.eclipse.kapua.model.id.KapuaId)7 AuthorizationService (org.eclipse.kapua.service.authorization.AuthorizationService)6 KapuaEntityNotFoundException (org.eclipse.kapua.KapuaEntityNotFoundException)5 KapuaIllegalArgumentException (org.eclipse.kapua.KapuaIllegalArgumentException)5 GwtUserService (org.eclipse.kapua.app.console.shared.service.GwtUserService)5 EntityManager (org.eclipse.kapua.commons.jpa.EntityManager)5 Produces (javax.ws.rs.Produces)3 KapuaSession (org.eclipse.kapua.commons.security.KapuaSession)3 CredentialService (org.eclipse.kapua.service.authentication.credential.CredentialService)3 Permission (org.eclipse.kapua.service.authorization.permission.Permission)3 UserPermissionFactory (org.eclipse.kapua.service.authorization.user.permission.UserPermissionFactory)3 UserPermissionService (org.eclipse.kapua.service.authorization.user.permission.UserPermissionService)3 UserFactory (org.eclipse.kapua.service.user.UserFactory)3 HashSet (java.util.HashSet)2