Search in sources :

Example 41 with Group

use of io.lumeer.api.model.Group in project engine by Lumeer.

the class GroupCodec method decode.

@Override
public Group decode(final BsonReader bsonReader, final DecoderContext decoderContext) {
    Document bson = documentCodec.decode(bsonReader, decoderContext);
    String id = bson.getObjectId(ID).toHexString();
    String name = bson.getString(NAME);
    String description = bson.getString(DESCRIPTION);
    String icon = bson.getString(ICON);
    String color = bson.getString(COLOR);
    List<String> usersList = bson.getList(USERS, String.class);
    List<String> users = usersList != null ? new ArrayList<>(usersList) : Collections.emptyList();
    return new Group(id, name, description, icon, color, users);
}
Also used : Group(io.lumeer.api.model.Group) Document(org.bson.Document)

Example 42 with Group

use of io.lumeer.api.model.Group in project engine by Lumeer.

the class MongoGroupDao method deleteGroup.

@Override
public void deleteGroup(final String id) {
    Group group = getGroup(id);
    DeleteResult result = databaseCollection().deleteOne(idFilter(id));
    if (result.getDeletedCount() != 1) {
        throw new StorageException("Group '" + id + "' has not been deleted.");
    }
    if (removeGroupEvent != null) {
        group.setOrganizationId(getOrganization().get().getId());
        removeGroupEvent.fire(new RemoveGroup(getOrganization().get().getId(), group));
    }
}
Also used : CreateOrUpdateGroup(io.lumeer.engine.api.event.CreateOrUpdateGroup) RemoveGroup(io.lumeer.engine.api.event.RemoveGroup) Group(io.lumeer.api.model.Group) RemoveGroup(io.lumeer.engine.api.event.RemoveGroup) StorageException(io.lumeer.storage.api.exception.StorageException) DeleteResult(com.mongodb.client.result.DeleteResult)

Example 43 with Group

use of io.lumeer.api.model.Group in project engine by Lumeer.

the class MongoGroupDao method updateGroup.

@Override
public Group updateGroup(final String id, final Group group) {
    FindOneAndReplaceOptions options = new FindOneAndReplaceOptions().returnDocument(ReturnDocument.AFTER).upsert(true);
    try {
        Group returnedGroup = databaseCollection().findOneAndReplace(idFilter(id), group, options);
        if (returnedGroup == null) {
            throw new StorageException("Group '" + id + "' has not been updated.");
        }
        if (createOrUpdateGroupEvent != null) {
            returnedGroup.setOrganizationId(getOrganization().get().getId());
            createOrUpdateGroupEvent.fire(new CreateOrUpdateGroup(getOrganization().get().getId(), returnedGroup));
        }
        return returnedGroup;
    } catch (MongoException ex) {
        throw new StorageException("Cannot update group " + group, ex);
    }
}
Also used : CreateOrUpdateGroup(io.lumeer.engine.api.event.CreateOrUpdateGroup) FindOneAndReplaceOptions(com.mongodb.client.model.FindOneAndReplaceOptions) CreateOrUpdateGroup(io.lumeer.engine.api.event.CreateOrUpdateGroup) RemoveGroup(io.lumeer.engine.api.event.RemoveGroup) Group(io.lumeer.api.model.Group) MongoException(com.mongodb.MongoException) StorageException(io.lumeer.storage.api.exception.StorageException)

Example 44 with Group

use of io.lumeer.api.model.Group in project engine by Lumeer.

the class ViewServiceIT method configureProject.

@Before
public void configureProject() {
    User user = new User(USER);
    this.user = userDao.createUser(user);
    userPermission = Permission.buildWithRoles(this.user.getId(), USER_ROLES);
    Organization organization = new Organization();
    organization.setCode(ORGANIZATION_CODE);
    organization.setPermissions(new Permissions());
    Organization storedOrganization = organizationDao.createOrganization(organization);
    this.organization = storedOrganization;
    Permissions organizationPermissions = new Permissions();
    Permission userPermission = Permission.buildWithRoles(this.user.getId(), Organization.ROLES);
    organizationPermissions.updateUserPermissions(userPermission);
    storedOrganization.setPermissions(organizationPermissions);
    organizationDao.updateOrganization(storedOrganization.getId(), storedOrganization);
    projectDao.setOrganization(storedOrganization);
    groupDao.setOrganization(storedOrganization);
    group = groupDao.createGroup(new Group(GROUP, Collections.singletonList(user.getId())));
    groupPermission = Permission.buildWithRoles(group.getId(), GROUP_ROLES);
    Project project = new Project();
    project.setCode(PROJECT_CODE);
    project.setPermissions(new Permissions());
    Project storedProject = projectDao.createProject(project);
    this.project = storedProject;
    Permissions projectPermissions = new Permissions();
    Permission userProjectPermission = Permission.buildWithRoles(this.user.getId(), Project.ROLES);
    projectPermissions.updateUserPermissions(userProjectPermission);
    storedProject.setPermissions(projectPermissions);
    storedProject = projectDao.updateProject(storedProject.getId(), storedProject);
    workspaceKeeper.setWorkspaceIds(storedOrganization.getId(), storedProject.getId());
    viewDao.setProject(storedProject);
    Collection collection = collectionFacade.createCollection(new Collection("abc", "abc random", ICON, COLOR, projectPermissions));
    collectionFacade.updateUserPermissions(collection.getId(), Set.of(Permission.buildWithRoles(this.user.getId(), Collections.singleton(new Role(RoleType.Read)))));
    query = new Query(new QueryStem(collection.getId()));
    viewsUrl = projectPath(storedOrganization, storedProject) + "views";
    PermissionCheckerUtil.allowGroups();
}
Also used : Role(io.lumeer.api.model.Role) Group(io.lumeer.api.model.Group) Project(io.lumeer.api.model.Project) User(io.lumeer.api.model.User) AuthenticatedUser(io.lumeer.core.auth.AuthenticatedUser) Organization(io.lumeer.api.model.Organization) Query(io.lumeer.api.model.Query) LumeerAssertions.assertPermissions(io.lumeer.test.util.LumeerAssertions.assertPermissions) Permissions(io.lumeer.api.model.Permissions) Permission(io.lumeer.api.model.Permission) Collection(io.lumeer.api.model.Collection) QueryStem(io.lumeer.api.model.QueryStem) Before(org.junit.Before)

Aggregations

Group (io.lumeer.api.model.Group)44 Test (org.junit.Test)22 Organization (io.lumeer.api.model.Organization)19 Permissions (io.lumeer.api.model.Permissions)16 Project (io.lumeer.api.model.Project)16 Role (io.lumeer.api.model.Role)16 User (io.lumeer.api.model.User)16 Before (org.junit.Before)15 AuthenticatedUser (io.lumeer.core.auth.AuthenticatedUser)14 Permission (io.lumeer.api.model.Permission)10 Response (javax.ws.rs.core.Response)9 Collection (io.lumeer.api.model.Collection)7 LumeerAssertions.assertPermissions (io.lumeer.test.util.LumeerAssertions.assertPermissions)6 List (java.util.List)4 LinkType (io.lumeer.api.model.LinkType)2 Query (io.lumeer.api.model.Query)2 QueryStem (io.lumeer.api.model.QueryStem)2 ResourceType (io.lumeer.api.model.ResourceType)2 RoleType (io.lumeer.api.model.RoleType)2 Resource (io.lumeer.api.model.common.Resource)2