Skip to content
Snippets Groups Projects
Commit 2a50eabd authored by srosse's avatar srosse
Browse files

OMA-112: add write permission flag in group infos

parent d57d267a
No related branches found
No related tags found
No related merge requests found
......@@ -361,15 +361,15 @@ public class LearningGroupWebService {
if(bg == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
Identity identity = RestSecurityHelper.getIdentity(request);
if(!isGroupManager(request)) {
Identity identity = RestSecurityHelper.getIdentity(request);
if(!bgs.isIdentityInBusinessGroup(identity, bg)) {
return Response.serverError().status(Status.UNAUTHORIZED).build();
}
}
GroupInfoVO info = getInformation(bg);
GroupInfoVO info = getInformation(identity, bg);
return Response.ok(info).build();
}
......
......@@ -140,7 +140,7 @@ public class MyGroupWebService {
int count = 0;
GroupInfoVO[] groupVOs = new GroupInfoVO[groups.size()];
for(BusinessGroup group:groups) {
groupVOs[count++] = ObjectFactory.getInformation(group);
groupVOs[count++] = ObjectFactory.getInformation(retrievedUser, group);
}
GroupInfoVOes voes = new GroupInfoVOes();
voes.setGroups(groupVOs);
......
......@@ -22,9 +22,11 @@ package org.olat.restapi.support;
import javax.ws.rs.core.EntityTag;
import org.olat.basesecurity.Authentication;
import org.olat.basesecurity.BaseSecurityManager;
import org.olat.collaboration.CollaborationTools;
import org.olat.collaboration.CollaborationToolsFactory;
import org.olat.core.gui.components.form.ValidationError;
import org.olat.core.id.Identity;
import org.olat.core.id.OLATResourceable;
import org.olat.core.util.resource.OresHelper;
import org.olat.course.CourseModule;
......@@ -65,7 +67,7 @@ public class ObjectFactory {
return vo;
}
public static GroupInfoVO getInformation(BusinessGroup grp) {
public static GroupInfoVO getInformation(Identity identity, BusinessGroup grp) {
GroupInfoVO vo = new GroupInfoVO();
vo.setKey(grp.getKey());
vo.setName(grp.getName());
......@@ -87,6 +89,16 @@ public class ObjectFactory {
boolean hasFolder = collabTools.isToolEnabled(CollaborationTools.TOOL_FOLDER);
vo.setHasFolder(hasFolder);
boolean hasFolderWrite = hasFolder;
if(hasFolder) {
Long access = collabTools.lookupFolderAccess();
if(access != null && access.intValue() == CollaborationTools.FOLDER_ACCESS_OWNERS) {
//is owner?
hasFolderWrite = BaseSecurityManager.getInstance().isIdentityInSecurityGroup(identity, grp.getOwnerGroup());
}
}
vo.setFolderWrite(hasFolderWrite);
return vo;
}
......
......@@ -21,6 +21,7 @@ package org.olat.restapi.support.vo;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
/**
......@@ -40,6 +41,8 @@ public class GroupInfoVO extends GroupVO {
private Long forumKey;
private Boolean hasWiki = Boolean.FALSE;
private Boolean hasFolder = Boolean.FALSE;
@XmlAttribute(name="folderWrite", required=false)
private boolean folderWrite;
public GroupInfoVO() {
//make JAXB happy
......@@ -76,4 +79,12 @@ public class GroupInfoVO extends GroupVO {
public void setHasFolder(Boolean hasFolder) {
this.hasFolder = hasFolder;
}
public boolean isFolderWrite() {
return folderWrite;
}
public void setFolderWrite(boolean folderWrite) {
this.folderWrite = folderWrite;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment