Skip to content
Snippets Groups Projects
Commit 9af40ebf authored by srosse's avatar srosse
Browse files

OO-990: author queries only retrieve entries where the user is author

parent 43248611
No related branches found
No related tags found
No related merge requests found
...@@ -1101,8 +1101,9 @@ public class BaseFullWebappController extends BasicController implements ChiefCo ...@@ -1101,8 +1101,9 @@ public class BaseFullWebappController extends BasicController implements ChiefCo
LanguageChangedEvent lce = (LanguageChangedEvent)event; LanguageChangedEvent lce = (LanguageChangedEvent)event;
getTranslator().setLocale(lce.getNewLocale()); getTranslator().setLocale(lce.getNewLocale());
initialize(lce.getCurrentUreq()); initialize(lce.getCurrentUreq());
initialPanel.popContent(); //TODO
initialPanel.pushContent(mainVc); //initialPanel.popContent();
//initialPanel.pushContent(mainVc);
} else if (event instanceof ChiefControllerMessageEvent) { } else if (event instanceof ChiefControllerMessageEvent) {
// msg can be set to show only on one node or on all nodes // msg can be set to show only on one node or on all nodes
String msg = GlobalStickyMessage.getGlobalStickyMessage();//either null, or the global message or the per-node-message String msg = GlobalStickyMessage.getGlobalStickyMessage();//either null, or the global message or the per-node-message
......
...@@ -33,6 +33,7 @@ import org.olat.core.id.Identity; ...@@ -33,6 +33,7 @@ import org.olat.core.id.Identity;
import org.olat.core.logging.OLog; import org.olat.core.logging.OLog;
import org.olat.core.logging.Tracing; import org.olat.core.logging.Tracing;
import org.olat.core.util.StringHelper; import org.olat.core.util.StringHelper;
import org.olat.repository.RepositoryEntry;
import org.olat.repository.RepositoryEntryAuthorView; import org.olat.repository.RepositoryEntryAuthorView;
import org.olat.repository.RepositoryEntryRef; import org.olat.repository.RepositoryEntryRef;
import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams; import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams;
...@@ -118,11 +119,20 @@ public class RepositoryEntryAuthorViewQueries { ...@@ -118,11 +119,20 @@ public class RepositoryEntryAuthorViewQueries {
sb.append(" where v.identityKey=:identityKey "); sb.append(" where v.identityKey=:identityKey ");
//only my entries as author //only my entries as author
sb.append(" and exists (select rel from repoentrytogroup as rel, bgroup as baseGroup, bgroupmember as membership") if(params.isOwnedResourcesOnly()) {
.append(" where rel.entry=v and rel.group=baseGroup and membership.group=baseGroup and membership.identity.key=v.identityKey") sb.append(" and exists (select rel from repoentrytogroup as rel, bgroup as baseGroup, bgroupmember as membership")
.append(" and membership.role='").append(GroupRoles.owner.name()).append("'") .append(" where rel.entry=v and rel.group=baseGroup and membership.group=baseGroup and membership.identity.key=v.identityKey")
.append(" )"); .append(" and membership.role='").append(GroupRoles.owner.name()).append("'")
.append(" )");
} else {
sb.append(" and (v.access>=").append(RepositoryEntry.ACC_OWNERS_AUTHORS)
.append(" or (v.access=").append(RepositoryEntry.ACC_OWNERS)
.append(" and exists (select rel from repoentrytogroup as rel, bgroup as baseGroup, bgroupmember as membership")
.append(" where rel.entry=v and rel.group=baseGroup and membership.group=baseGroup and membership.identity.key=v.identityKey")
.append(" and membership.role='").append(GroupRoles.owner.name()).append("'")
.append(" )")
.append(" ))");
}
if(params.getRepoEntryKeys() != null && params.getRepoEntryKeys().size() > 0) { if(params.getRepoEntryKeys() != null && params.getRepoEntryKeys().size() > 0) {
sb.append(" and v.key in (:repoEntryKeys)"); sb.append(" and v.key in (:repoEntryKeys)");
......
...@@ -36,6 +36,7 @@ public class SearchAuthorRepositoryEntryViewParams { ...@@ -36,6 +36,7 @@ public class SearchAuthorRepositoryEntryViewParams {
private final Roles roles; private final Roles roles;
private Boolean marked; private Boolean marked;
private boolean ownedResourcesOnly;
private String idAndRefs; private String idAndRefs;
private String author; private String author;
...@@ -60,6 +61,14 @@ public class SearchAuthorRepositoryEntryViewParams { ...@@ -60,6 +61,14 @@ public class SearchAuthorRepositoryEntryViewParams {
this.idAndRefs = idAndRefs; this.idAndRefs = idAndRefs;
} }
public boolean isOwnedResourcesOnly() {
return ownedResourcesOnly;
}
public void setOwnedResourcesOnly(boolean ownedResourcesOnly) {
this.ownedResourcesOnly = ownedResourcesOnly;
}
public String getAuthor() { public String getAuthor() {
return author; return author;
} }
......
...@@ -141,6 +141,7 @@ public class OverviewAuthoringController extends BasicController implements Acti ...@@ -141,6 +141,7 @@ public class OverviewAuthoringController extends BasicController implements Acti
SearchAuthorRepositoryEntryViewParams searchParams SearchAuthorRepositoryEntryViewParams searchParams
= new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles());
searchParams.setMarked(Boolean.TRUE); searchParams.setMarked(Boolean.TRUE);
searchParams.setOwnedResourcesOnly(false);
OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l); OLATResourceable ores = OresHelper.createOLATResourceableInstance("Favorits", 0l);
ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
...@@ -158,6 +159,7 @@ public class OverviewAuthoringController extends BasicController implements Acti ...@@ -158,6 +159,7 @@ public class OverviewAuthoringController extends BasicController implements Acti
if(myEntriesCtrl == null) { if(myEntriesCtrl == null) {
SearchAuthorRepositoryEntryViewParams searchParams SearchAuthorRepositoryEntryViewParams searchParams
= new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles());
searchParams.setOwnedResourcesOnly(true);
OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l); OLATResourceable ores = OresHelper.createOLATResourceableInstance("My", 0l);
ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
...@@ -175,6 +177,7 @@ public class OverviewAuthoringController extends BasicController implements Acti ...@@ -175,6 +177,7 @@ public class OverviewAuthoringController extends BasicController implements Acti
if(searchEntriesCtrl == null) { if(searchEntriesCtrl == null) {
SearchAuthorRepositoryEntryViewParams searchParams SearchAuthorRepositoryEntryViewParams searchParams
= new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles()); = new SearchAuthorRepositoryEntryViewParams(getIdentity(), ureq.getUserSession().getRoles());
searchParams.setOwnedResourcesOnly(false);
OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l); OLATResourceable ores = OresHelper.createOLATResourceableInstance("Search", 0l);
ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores)); ThreadLocalUserActivityLogger.addLoggingResourceInfo(LoggingResourceable.wrapBusinessPath(ores));
......
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