Skip to content

Commit

Permalink
Merge pull request #5237 from jay-hodgson/SWC-6620
Browse files Browse the repository at this point in the history
  • Loading branch information
jay-hodgson authored Nov 28, 2023
2 parents 855efad + 054dc6d commit ee30aef
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,15 @@ public void checkUpdateEntity(EntityBundle toUpdate, Callback callback) {
// not logged in
placeChanger.goTo(new LoginPlace(LoginPlace.LOGIN_TOKEN));
} else {
callback.invoke();
// If the user could edit if certified, but currently cannot edit, then show the quiz info dialog
if (
toUpdate.getPermissions().getCanCertifiedUserEdit() &&
!toUpdate.getPermissions().getCanEdit()
) {
getQuizInfoDialog().show();
} else {
callback.invoke();
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -1082,7 +1082,7 @@ private void configureProvenance() {
) {
actionMenu.setActionVisible(
Action.EDIT_PROVENANCE,
permissions.getCanEdit()
permissions.getCanCertifiedUserEdit()
);
actionMenu.setActionListener(Action.EDIT_PROVENANCE, this);
actionMenu.setActionText(
Expand All @@ -1101,7 +1101,7 @@ private void configureChangeStorageLocation() {
) {
actionMenu.setActionVisible(
Action.CHANGE_STORAGE_LOCATION,
permissions.getCanEdit()
permissions.getCanCertifiedUserEdit()
);
actionMenu.setActionText(
Action.CHANGE_STORAGE_LOCATION,
Expand Down Expand Up @@ -1354,7 +1354,7 @@ private void configureEditWiki() {
if (isWikiableConfig(entityBundle.getEntity(), currentArea)) {
actionMenu.setActionVisible(
Action.EDIT_WIKI_PAGE,
permissions.getCanEdit()
permissions.getCanCertifiedUserEdit()
);
actionMenu.setActionListener(Action.EDIT_WIKI_PAGE, this);
actionMenu.setActionText(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ public void before() {
permissions = new UserEntityPermissions();
permissions.setIsCertifiedUser(true);
permissions.setIsCertificationRequired(true);
permissions.setCanCertifiedUserEdit(true);
permissions.setCanEdit(true);
bundle = new EntityBundle();
bundle.setEntity(entity);
bundle.setPermissions(permissions);
Expand Down Expand Up @@ -143,13 +145,25 @@ public void testCreateNonProjectCertificatinNotRequiredNotCertified() {
}

@Test
public void testUpadateNotCertified() {
public void testUpdateNotCertified() {
permissions.setIsCertifiedUser(false);
permissions.setCanEdit(true);
permissions.setCanCertifiedUserEdit(true);
controller.checkUpdateEntity(bundle, mockCallback);
verify(mockCallback).invoke();
verify(mockQuizInfoDialog, never()).show();
}

@Test
public void testUpdateCertifiedRequired() {
permissions.setIsCertifiedUser(false);
permissions.setCanEdit(false);
permissions.setCanCertifiedUserEdit(true);
controller.checkUpdateEntity(bundle, mockCallback);
verify(mockCallback, never()).invoke();
verify(mockQuizInfoDialog).show();
}

@Test
public void testUpdateCertified() {
permissions.setIsCertifiedUser(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1808,6 +1808,7 @@ public void testConfigureWikiCannotEdit() {
entityBundle.setEntity(new Folder());
entityBundle.setRootWikiId("7890");
permissions.setCanEdit(false);
permissions.setCanCertifiedUserEdit(false);
controller.configure(
mockActionMenu,
entityBundle,
Expand All @@ -1820,6 +1821,28 @@ public void testConfigureWikiCannotEdit() {
verify(mockActionMenu).setActionListener(Action.EDIT_WIKI_PAGE, controller);
}

@Test
public void testConfigureWikiCannotEditUntilCertified() {
entityBundle.setEntity(new Folder());
entityBundle.setRootWikiId("7890");
permissions.setCanEdit(false);
permissions.setCanCertifiedUserEdit(true);
controller.configure(
mockActionMenu,
entityBundle,
true,
wikiPageId,
currentEntityArea,
mockAddToDownloadListWidget
);

verify(mockActionMenu).setActionVisible(Action.EDIT_WIKI_PAGE, true);

controller.onAction(Action.EDIT_WIKI_PAGE, null);
verify(mockPreflightController)
.checkUpdateEntity(any(EntityBundle.class), any(Callback.class));
}

@Test
public void testConfigureDeleteWiki() {
entityBundle.setEntity(new Project());
Expand Down Expand Up @@ -2170,6 +2193,7 @@ public void testConfigureProvenanceFileCanEdit() {
public void testConfigureProvenanceFileCannotEdit() {
boolean canEdit = false;
entityBundle.getPermissions().setCanEdit(canEdit);
entityBundle.getPermissions().setCanCertifiedUserEdit(canEdit);
entityBundle.setEntity(new FileEntity());
controller.configure(
mockActionMenu,
Expand All @@ -2184,6 +2208,27 @@ public void testConfigureProvenanceFileCannotEdit() {
.setActionListener(Action.EDIT_PROVENANCE, controller);
}

@Test
public void testConfigureProvenanceFileCannotEditUntilCertified() {
entityBundle.getPermissions().setCanEdit(false);
entityBundle.getPermissions().setCanCertifiedUserEdit(true);
entityBundle.setEntity(new FileEntity());
controller.configure(
mockActionMenu,
entityBundle,
true,
wikiPageId,
currentEntityArea,
mockAddToDownloadListWidget
);

verify(mockActionMenu).setActionVisible(Action.EDIT_PROVENANCE, true);

controller.onAction(Action.EDIT_PROVENANCE, null);
verify(mockPreflightController)
.checkUpdateEntity(any(EntityBundle.class), any(Callback.class));
}

@Test
public void testConfigureProvenanceDockerCanEdit() {
boolean canEdit = true;
Expand All @@ -2207,6 +2252,7 @@ public void testConfigureProvenanceDockerCanEdit() {
public void testConfigureProvenanceDockerCannotEdit() {
boolean canEdit = false;
entityBundle.getPermissions().setCanEdit(canEdit);
entityBundle.getPermissions().setCanCertifiedUserEdit(canEdit);
entityBundle.setEntity(new DockerRepository());
controller.configure(
mockActionMenu,
Expand All @@ -2221,6 +2267,26 @@ public void testConfigureProvenanceDockerCannotEdit() {
.setActionListener(Action.EDIT_PROVENANCE, controller);
}

@Test
public void testConfigureProvenanceDockerCannotEditUntilCertified() {
entityBundle.getPermissions().setCanEdit(false);
entityBundle.getPermissions().setCanCertifiedUserEdit(true);
entityBundle.setEntity(new DockerRepository());
controller.configure(
mockActionMenu,
entityBundle,
true,
wikiPageId,
currentEntityArea,
mockAddToDownloadListWidget
);
verify(mockActionMenu).setActionVisible(Action.EDIT_PROVENANCE, true);

controller.onAction(Action.EDIT_PROVENANCE, null);
verify(mockPreflightController)
.checkUpdateEntity(any(EntityBundle.class), any(Callback.class));
}

@Test
public void testConfigureProvenanceNonFileNorDocker() {
entityBundle.setEntity(new Folder());
Expand Down

0 comments on commit ee30aef

Please sign in to comment.