Search in sources :

Example 31 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 32 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 33 with Group

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

the class OwnerEntries method getNumberOfOwnerEntries.

public long getNumberOfOwnerEntries() {
    if (this.isAdmin || this.isSelf) {
        return entryDAO.ownerEntryCount(ownerAccount.getEmail());
    }
    Set<Group> accountGroups = new HashSet<>(account.getGroups());
    GroupController controller = new GroupController();
    Group everybodyGroup = controller.createOrRetrievePublicGroup();
    accountGroups.add(everybodyGroup);
    return entryDAO.ownerEntryCount(account, ownerAccount.getEmail(), accountGroups);
}
Also used : Group(org.jbei.ice.storage.model.Group) GroupController(org.jbei.ice.lib.group.GroupController) HashSet(java.util.HashSet)

Example 34 with Group

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

the class EntryPermissions method disablePublicReadAccess.

public boolean disablePublicReadAccess() {
    authorization.expectWrite(userId, entry);
    Group publicGroup = groupController.createOrRetrievePublicGroup();
    permissionDAO.removePermission(entry, null, null, null, publicGroup, true, false);
    return true;
}
Also used : Group(org.jbei.ice.storage.model.Group)

Example 35 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 (HibernateException he) {
        Logger.error(he);
        throw new DAOException(he);
    }
}
Also used : DAOException(org.jbei.ice.storage.DAOException) Group(org.jbei.ice.storage.model.Group) HibernateException(org.hibernate.HibernateException) RemoteClientModel(org.jbei.ice.storage.model.RemoteClientModel)

Aggregations

Group (org.jbei.ice.storage.model.Group)50 Account (org.jbei.ice.storage.model.Account)24 UserGroup (org.jbei.ice.lib.dto.group.UserGroup)16 HibernateException (org.hibernate.HibernateException)14 DAOException (org.jbei.ice.storage.DAOException)14 GroupController (org.jbei.ice.lib.group.GroupController)10 ArrayList (java.util.ArrayList)7 Entry (org.jbei.ice.storage.model.Entry)7 HashSet (java.util.HashSet)6 PermissionException (org.jbei.ice.lib.access.PermissionException)6 PartData (org.jbei.ice.lib.dto.entry.PartData)4 Folder (org.jbei.ice.storage.model.Folder)4 RemoteClientModel (org.jbei.ice.storage.model.RemoteClientModel)4 NativeQuery (org.hibernate.query.NativeQuery)3 AccountTransfer (org.jbei.ice.lib.account.AccountTransfer)3 AccessPermission (org.jbei.ice.lib.dto.access.AccessPermission)3 Results (org.jbei.ice.lib.dto.common.Results)3 FolderDetails (org.jbei.ice.lib.dto.folder.FolderDetails)3 Message (org.jbei.ice.storage.model.Message)3 AccountController (org.jbei.ice.lib.account.AccountController)2