Search in sources :

Example 46 with Group

use of org.jbei.ice.storage.model.Group in project ice by JBEI.

the class EntryPermissionTask method addPermissions.

protected void addPermissions(Entry entry) {
    for (AccessPermission access : permissions) {
        // account or group
        Account account = null;
        Group group = null;
        switch(access.getArticle()) {
            case ACCOUNT:
            default:
                account = accountDAO.get(access.getArticleId());
                break;
            case GROUP:
                group = groupDAO.get(access.getArticleId());
                break;
        }
        // does the permissions already exists
        if (permissionDAO.hasPermission(entry, null, null, account, group, access.isCanRead(), access.isCanWrite()))
            return;
        // add the permission if not
        Permission permission = new Permission();
        permission.setEntry(entry);
        entry.getPermissions().add(permission);
        permission.setGroup(group);
        permission.setFolder(null);
        permission.setUpload(null);
        permission.setAccount(account);
        permission.setCanRead(access.isCanRead());
        permission.setCanWrite(access.isCanWrite());
        permissionDAO.create(permission);
    }
}
Also used : Account(org.jbei.ice.storage.model.Account) Group(org.jbei.ice.storage.model.Group) AccessPermission(org.jbei.ice.lib.dto.access.AccessPermission) Permission(org.jbei.ice.storage.model.Permission) AccessPermission(org.jbei.ice.lib.dto.access.AccessPermission)

Example 47 with Group

use of org.jbei.ice.storage.model.Group in project ice by JBEI.

the class SharedEntries method getNumberOfEntries.

public long getNumberOfEntries(String filter) {
    GroupController groupController = new GroupController();
    Group publicGroup = groupController.createOrRetrievePublicGroup();
    Set<Group> accountGroups = account.getGroups();
    accountGroups.remove(publicGroup);
    return this.entryDAO.sharedEntryCount(account, accountGroups, filter);
}
Also used : Group(org.jbei.ice.storage.model.Group) GroupController(org.jbei.ice.lib.group.GroupController)

Example 48 with Group

use of org.jbei.ice.storage.model.Group in project ice by JBEI.

the class SharedEntries method getEntries.

public List<PartData> getEntries(ColumnField field, boolean asc, int start, int limit, String filter, List<String> fields) {
    GroupController groupController = new GroupController();
    Group publicGroup = groupController.createOrRetrievePublicGroup();
    Set<Group> accountGroups = account.getGroups();
    accountGroups.remove(publicGroup);
    List<Long> entries = this.entryDAO.sharedWithUserEntries(account, accountGroups, field, asc, start, limit, filter);
    ArrayList<PartData> data = new ArrayList<>();
    for (Long id : entries) {
        PartData info = ModelToInfoFactory.createTableView(id, fields);
        data.add(info);
    }
    return data;
}
Also used : Group(org.jbei.ice.storage.model.Group) GroupController(org.jbei.ice.lib.group.GroupController) PartData(org.jbei.ice.lib.dto.entry.PartData) ArrayList(java.util.ArrayList)

Example 49 with Group

use of org.jbei.ice.storage.model.Group in project ice by JBEI.

the class RemoteClientModelDAO method getClientsForGroup.

/**
 * Retrieves clients belonging to specified group
 *
 * @param group group whose members are to be retrieved
 * @return remote clients that have been added to the specified group
 */
public List<RemoteClientModel> getClientsForGroup(Group group) {
    try {
        CriteriaQuery<RemoteClientModel> query = getBuilder().createQuery(RemoteClientModel.class);
        Root<RemoteClientModel> from = query.from(RemoteClientModel.class);
        Join<RemoteClientModel, Group> groups = from.join("groups");
        query.where(getBuilder().equal(groups.get("id"), group.getId()), getBuilder().isNotNull(from.get("email")));
        return currentSession().createQuery(query).list();
    } catch (Exception he) {
        Logger.error(he);
        throw new DAOException(he);
    }
}
Also used : DAOException(org.jbei.ice.storage.DAOException) Group(org.jbei.ice.storage.model.Group) RemoteClientModel(org.jbei.ice.storage.model.RemoteClientModel) DAOException(org.jbei.ice.storage.DAOException)

Example 50 with Group

use of org.jbei.ice.storage.model.Group in project ice by JBEI.

the class GroupDAO method getMemberGroupUUIDs.

/**
 * Retrieves all UUIDs that the specified account either owns or is a member of
 *
 * @param account account
 * @return list of UUIDs matching the query
 * @throws DAOException on hibernate exception
 */
public List<String> getMemberGroupUUIDs(Account account) {
    try {
        CriteriaQuery<String> query = getBuilder().createQuery(String.class).distinct(true);
        Root<Group> from = query.from(Group.class);
        Join<Group, Account> members = from.join("members", JoinType.LEFT);
        query.select(from.get("uuid")).where(getBuilder().or(getBuilder().equal(from.get("owner"), account), getBuilder().equal(members.get("email"), account.getEmail())));
        return currentSession().createQuery(query).list();
    } catch (Exception he) {
        Logger.error(he);
        throw new DAOException(he);
    }
}
Also used : DAOException(org.jbei.ice.storage.DAOException) Group(org.jbei.ice.storage.model.Group) Account(org.jbei.ice.storage.model.Account) DAOException(org.jbei.ice.storage.DAOException)

Aggregations

Group (org.jbei.ice.storage.model.Group)62 Account (org.jbei.ice.storage.model.Account)26 UserGroup (org.jbei.ice.lib.dto.group.UserGroup)16 DAOException (org.jbei.ice.storage.DAOException)15 GroupController (org.jbei.ice.lib.group.GroupController)12 ArrayList (java.util.ArrayList)10 HashSet (java.util.HashSet)9 PartData (org.jbei.ice.lib.dto.entry.PartData)9 PermissionException (org.jbei.ice.lib.access.PermissionException)7 HibernateRepositoryTest (org.jbei.ice.storage.hibernate.HibernateRepositoryTest)7 Entry (org.jbei.ice.storage.model.Entry)7 Test (org.junit.Test)7 HibernateException (org.hibernate.HibernateException)5 AccountTransfer (org.jbei.ice.lib.account.AccountTransfer)4 FolderDetails (org.jbei.ice.lib.dto.folder.FolderDetails)4 Folder (org.jbei.ice.storage.model.Folder)4 RemoteClientModel (org.jbei.ice.storage.model.RemoteClientModel)4 NativeQuery (org.hibernate.query.NativeQuery)3 AccessPermission (org.jbei.ice.lib.dto.access.AccessPermission)3 Results (org.jbei.ice.lib.dto.common.Results)3