88import edu .harvard .iq .dataverse .authorization .Permission ;
99import edu .harvard .iq .dataverse .authorization .users .User ;
1010import edu .harvard .iq .dataverse .engine .command .Command ;
11+ import edu .harvard .iq .dataverse .engine .command .DataverseRequest ;
1112import edu .harvard .iq .dataverse .engine .command .impl .*;
1213import java .util .HashMap ;
1314import 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