Skip to content

Commit affb6b3

Browse files
committed
(Part of #1380) IP groups are now honored by the dataset page
1 parent 2ee3fad commit affb6b3

File tree

3 files changed

+15
-39
lines changed

3 files changed

+15
-39
lines changed

scripts/issues/1380/keys.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
Keys for Pete and Uma. Produced by running setup-all.sh from the /scripts/api folder.
1+
Keys for P e t e and U m a. Produced by running setup-all.sh from the /scripts/api folder.
22
Pete:757a6493-456a-4bf0-943e-9b559d551a3f
33
Uma:8797f19b-b8aa-4f96-a789-1b99506f2eab

src/main/java/edu/harvard/iq/dataverse/DatasetPage.java

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@
8080

8181
import javax.faces.event.AjaxBehaviorEvent;
8282

83-
import javax.faces.context.ExternalContext;
8483
import org.apache.commons.lang.StringEscapeUtils;
8584

8685
import org.primefaces.component.tabview.TabView;
@@ -555,7 +554,7 @@ public boolean isThumbnailAvailable(FileMetadata fileMetadata) {
555554

556555
// Another convenience method - to cache Update Permission on the dataset:
557556
public boolean canUpdateDataset() {
558-
return permissionsWrapper.canUpdateDataset(this.session.getUser(), this.dataset);
557+
return permissionsWrapper.canUpdateDataset(dvRequestService.getDataverseRequest(), this.dataset);
559558
}
560559

561560
public boolean canPublishDataverse() {
@@ -576,42 +575,17 @@ public boolean canPublishDataverse() {
576575
//}
577576

578577
public boolean canViewUnpublishedDataset() {
579-
return permissionsWrapper.canViewUnpublishedDataset(this.session.getUser(), this.dataset);
580-
//return doesSessionUserHaveDataSetPermission(Permission.ViewUnpublishedDataset);
578+
return permissionsWrapper.canViewUnpublishedDataset( dvRequestService.getDataverseRequest(), dataset);
581579
}
582580

583-
private Boolean sessionUserAuthenticated = null;
584-
585-
586581
/*
587582
* 4.2.1 optimization.
588583
* HOWEVER, this doesn't appear to be saving us anything!
589584
* i.e., it's just as cheap to use session.getUser().isAuthenticated()
590585
* every time; it doesn't do any new db lookups.
591586
*/
592587
public boolean isSessionUserAuthenticated() {
593-
logger.fine("entering isSessionUserAuthenticated;");
594-
if (sessionUserAuthenticated != null) {
595-
logger.fine("using cached isSessionUserAuthenticated;");
596-
597-
return sessionUserAuthenticated;
598-
}
599-
600-
if (session == null) {
601-
return false;
602-
}
603-
604-
if (session.getUser() == null) {
605-
return false;
606-
}
607-
608-
if (session.getUser().isAuthenticated()) {
609-
sessionUserAuthenticated = true;
610-
return true;
611-
}
612-
613-
sessionUserAuthenticated = false;
614-
return false;
588+
return session.getUser().isAuthenticated();
615589
}
616590

617591
/**

src/main/java/edu/harvard/iq/dataverse/PermissionsWrapper.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import edu.harvard.iq.dataverse.authorization.Permission;
99
import edu.harvard.iq.dataverse.authorization.users.User;
1010
import edu.harvard.iq.dataverse.engine.command.Command;
11+
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
1112
import edu.harvard.iq.dataverse.engine.command.impl.*;
1213
import java.util.HashMap;
1314
import java.util.Map;
@@ -42,7 +43,9 @@ public class PermissionsWrapper implements java.io.Serializable {
4243
/**
4344
* Check if the current Dataset can Issue Commands
4445
*
45-
* @param commandName
46+
* @param dvo Target dataverse object.
47+
* @param command The command to execute
48+
* @return {@code true} if the user can issue the command on the object.
4649
*/
4750
public boolean canIssueCommand(DvObject dvo, Class<? extends Command> command) {
4851
if ((dvo==null) || (dvo.getId()==null)){
@@ -131,12 +134,12 @@ public boolean canManageDatasetPermissions(User u, Dataset ds) {
131134
return permissionService.userOn(u, ds).has(Permission.ManageDatasetPermissions);
132135
}
133136

134-
public boolean canViewUnpublishedDataset(User user, Dataset dataset) {
135-
return doesSessionUserHaveDataSetPermission(user, dataset, Permission.ViewUnpublishedDataset);
137+
public boolean canViewUnpublishedDataset(DataverseRequest dr, Dataset dataset) {
138+
return doesSessionUserHaveDataSetPermission(dr, dataset, Permission.ViewUnpublishedDataset);
136139
}
137140

138-
public boolean canUpdateDataset(User user, Dataset dataset) {
139-
return doesSessionUserHaveDataSetPermission(user, dataset, Permission.EditDataset);
141+
public boolean canUpdateDataset(DataverseRequest dr, Dataset dataset) {
142+
return doesSessionUserHaveDataSetPermission(dr, dataset, Permission.EditDataset);
140143
}
141144

142145

@@ -147,12 +150,12 @@ public boolean canUpdateDataset(User user, Dataset dataset) {
147150
*
148151
* Check Dataset related permissions
149152
*
150-
* @param user
153+
* @param req
151154
* @param dataset
152155
* @param permissionToCheck
153156
* @return
154157
*/
155-
public boolean doesSessionUserHaveDataSetPermission(User user, Dataset dataset, Permission permissionToCheck){
158+
public boolean doesSessionUserHaveDataSetPermission(DataverseRequest req, Dataset dataset, Permission permissionToCheck){
156159
if (permissionToCheck == null){
157160
return false;
158161
}
@@ -167,8 +170,7 @@ public boolean doesSessionUserHaveDataSetPermission(User user, Dataset dataset,
167170
}
168171

169172
// Check the permission
170-
//
171-
boolean hasPermission = this.permissionService.userOn(user, dataset).has(permissionToCheck);
173+
boolean hasPermission = this.permissionService.requestOn(req, dataset).has(permissionToCheck);
172174

173175
// Save the permission
174176
this.datasetPermissionMap.put(permName, hasPermission);

0 commit comments

Comments
 (0)