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 { ...@@ -361,15 +361,15 @@ public class LearningGroupWebService {
if(bg == null) { if(bg == null) {
return Response.serverError().status(Status.NOT_FOUND).build(); return Response.serverError().status(Status.NOT_FOUND).build();
} }
Identity identity = RestSecurityHelper.getIdentity(request);
if(!isGroupManager(request)) { if(!isGroupManager(request)) {
Identity identity = RestSecurityHelper.getIdentity(request);
if(!bgs.isIdentityInBusinessGroup(identity, bg)) { if(!bgs.isIdentityInBusinessGroup(identity, bg)) {
return Response.serverError().status(Status.UNAUTHORIZED).build(); return Response.serverError().status(Status.UNAUTHORIZED).build();
} }
} }
GroupInfoVO info = getInformation(bg); GroupInfoVO info = getInformation(identity, bg);
return Response.ok(info).build(); return Response.ok(info).build();
} }
......
...@@ -140,7 +140,7 @@ public class MyGroupWebService { ...@@ -140,7 +140,7 @@ public class MyGroupWebService {
int count = 0; int count = 0;
GroupInfoVO[] groupVOs = new GroupInfoVO[groups.size()]; GroupInfoVO[] groupVOs = new GroupInfoVO[groups.size()];
for(BusinessGroup group:groups) { for(BusinessGroup group:groups) {
groupVOs[count++] = ObjectFactory.getInformation(group); groupVOs[count++] = ObjectFactory.getInformation(retrievedUser, group);
} }
GroupInfoVOes voes = new GroupInfoVOes(); GroupInfoVOes voes = new GroupInfoVOes();
voes.setGroups(groupVOs); voes.setGroups(groupVOs);
......
...@@ -22,9 +22,11 @@ package org.olat.restapi.support; ...@@ -22,9 +22,11 @@ package org.olat.restapi.support;
import javax.ws.rs.core.EntityTag; import javax.ws.rs.core.EntityTag;
import org.olat.basesecurity.Authentication; import org.olat.basesecurity.Authentication;
import org.olat.basesecurity.BaseSecurityManager;
import org.olat.collaboration.CollaborationTools; import org.olat.collaboration.CollaborationTools;
import org.olat.collaboration.CollaborationToolsFactory; import org.olat.collaboration.CollaborationToolsFactory;
import org.olat.core.gui.components.form.ValidationError; import org.olat.core.gui.components.form.ValidationError;
import org.olat.core.id.Identity;
import org.olat.core.id.OLATResourceable; import org.olat.core.id.OLATResourceable;
import org.olat.core.util.resource.OresHelper; import org.olat.core.util.resource.OresHelper;
import org.olat.course.CourseModule; import org.olat.course.CourseModule;
...@@ -65,7 +67,7 @@ public class ObjectFactory { ...@@ -65,7 +67,7 @@ public class ObjectFactory {
return vo; return vo;
} }
public static GroupInfoVO getInformation(BusinessGroup grp) { public static GroupInfoVO getInformation(Identity identity, BusinessGroup grp) {
GroupInfoVO vo = new GroupInfoVO(); GroupInfoVO vo = new GroupInfoVO();
vo.setKey(grp.getKey()); vo.setKey(grp.getKey());
vo.setName(grp.getName()); vo.setName(grp.getName());
...@@ -87,6 +89,16 @@ public class ObjectFactory { ...@@ -87,6 +89,16 @@ public class ObjectFactory {
boolean hasFolder = collabTools.isToolEnabled(CollaborationTools.TOOL_FOLDER); boolean hasFolder = collabTools.isToolEnabled(CollaborationTools.TOOL_FOLDER);
vo.setHasFolder(hasFolder); 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; return vo;
} }
......
...@@ -21,6 +21,7 @@ package org.olat.restapi.support.vo; ...@@ -21,6 +21,7 @@ package org.olat.restapi.support.vo;
import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
/** /**
...@@ -40,6 +41,8 @@ public class GroupInfoVO extends GroupVO { ...@@ -40,6 +41,8 @@ public class GroupInfoVO extends GroupVO {
private Long forumKey; private Long forumKey;
private Boolean hasWiki = Boolean.FALSE; private Boolean hasWiki = Boolean.FALSE;
private Boolean hasFolder = Boolean.FALSE; private Boolean hasFolder = Boolean.FALSE;
@XmlAttribute(name="folderWrite", required=false)
private boolean folderWrite;
public GroupInfoVO() { public GroupInfoVO() {
//make JAXB happy //make JAXB happy
...@@ -76,4 +79,12 @@ public class GroupInfoVO extends GroupVO { ...@@ -76,4 +79,12 @@ public class GroupInfoVO extends GroupVO {
public void setHasFolder(Boolean hasFolder) { public void setHasFolder(Boolean hasFolder) {
this.hasFolder = 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