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);
}
}
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);
}
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;
}
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);
}
}
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);
}
}
Aggregations