public void testDuplicateUserScrollsToHighlight() throws Exception { // 1. Add a load of users with restrictions for a page List<Entity> users = addPlentyOUsersAndView(20, testPage); PageView view = suite.logIn(defaultUser, testPage); // 2. View the restrictions dialog and add a duplicate user PagePermissionsEditor permissionsEditor = view.clickPermissionsMetadataIcon(); // 3. Add dupe to scroll down ContentPermission testDude9CanView = new ContentPermission(users.get(9), VIEW); permissionsEditor.addContentPermission(testDude9CanView); permissionsEditor.waitForPermissionToScrollIntoViewport(testDude9CanView); // 4. Add dupe to scroll up ContentPermission testDude1CanView = new ContentPermission(users.get(1), VIEW); permissionsEditor.addContentPermission(testDude1CanView); permissionsEditor.waitForPermissionToScrollIntoViewport(testDude1CanView); }
private String getPermissionRowSelectorJS(ContentPermission contentPermission, String tableSelector) { String rowSelector = "." + contentPermission.getPermissionType().lowerValue() + "-permission-row"; String username = GeneralUtil.escapeForJavascript(contentPermission.getEntity().getName()); return "$('" + tableSelector + " " + rowSelector + "')" + ".filter(function(){return $('.permission-entity-name',this).text() == '" + username + "'})" + ".closest('tr')"; }
public void addContentPermission(ContentPermission contentPermission) { setCurrentPermissionType(contentPermission.getPermissionType()); addEntitiesViaInputField(contentPermission.getEntity().getName()); assertHasPermission(contentPermission); }
public void testViewUneditablePage() { userHelper.createUser(limitedUser); rpc.grantPermission(SpacePermission.VIEW, testSpace,limitedUser); rpc.grantContentPermission(new ContentPermission(limitedUser, ContentPermissionType.VIEW), pageToView); rpc.grantContentPermission(new ContentPermission(adminUser, ContentPermissionType.VIEW), pageToView); rpc.revokeContentPermission(new ContentPermission(limitedUser, ContentPermissionType.EDIT), pageToView); pageWithGadget.setContent(getPageGadgetMacroMarkupForPage(pageToView)); rpc.savePage(pageWithGadget); suite.logIn(limitedUser, pageWithGadget); pageGadget.selectConfluencePageIframe(); assertThat.elementPresent("viewLink"); assertThat.elementNotPresent("editLink"); }
public String getRemovePermissionRowLinkId(ContentPermission contentPermission) { String rowSelector = "." + contentPermission.getPermissionType().lowerValue() + "-permission-row"; String userSelector = ".permission-entity-name:contains(" + GeneralUtil.escapeForJavascript(contentPermission.getEntity().getName()) + ")"; String removeLinkSelector = "$('#page-permissions-table " + rowSelector + " " + userSelector + "').closest('tr').find('.remove-permission-link').attr('id')"; return client.getEval(removeLinkSelector); }
@Override protected void setUp() throws Exception { super.setUp(); editor = new Editor(client, suite); rpc.logIn(adminUser); defaultUser = testUserWithApostrophe; // for now defaultUserCanView = new ContentPermission(defaultUser, VIEW); defaultUserCanEdit = new ContentPermission(defaultUser, EDIT); rpc.grantPermission(SpacePermission.PAGE_RESTRICT, testSpace, defaultUser); whiteSpaceUser = new User("white space user", "password", "Mr White", "whitespaceuser@test.com"); userHelper.createUser(whiteSpaceUser); rpc.flushIndexQueue(); editor = new Editor(client, suite); }
private boolean hasPermission(Page page, ContentPermission contentPermission) { ContentPermissionType permissionType = contentPermission.getPermissionType(); Entity entity = contentPermission.getEntity(); ContentPermissionEntityType entityType = (entity instanceof User) ? USER : GROUP; ContentPermissionEntry testEntry = new ContentPermissionEntry(permissionType, entityType, entity.getName()); Collection<ContentPermissionEntry> contentPermissionEntries = rpc.getPagePermissions(page.getId()); for (ContentPermissionEntry contentPermissionEntry : contentPermissionEntries) { if (testEntry.toString().equals(contentPermissionEntry.toString())) return true; } return false; }
public void testMultipleUsersPermissionsExistingPage() { ContentPermission permission1 = new ContentPermission(defaultUser, ContentPermissionType.VIEW); ContentPermission permission2 = new ContentPermission(testUser, ContentPermissionType.VIEW); rpc.grantContentPermission(permission1, testPage); rpc.grantContentPermission(permission2, testPage); editor.logInAndEdit(defaultUser, testPage); assertTrue(editor.isPermissionsSet()); PagePermissionsEditor pagePermissionsEditor = editor.openPermissionsEditor(); pagePermissionsEditor.assertHasPermission(permission1); pagePermissionsEditor.assertHasPermission(permission2); pagePermissionsEditor.cancel(); assertTrue(editor.isPermissionsSet()); } }
public void testPagePermission() { userHelper.createUser(limitedUser); rpc.grantPermission(SpacePermission.VIEW, testSpace, limitedUser); final String newContent = "Page only viewable by the admin"; pageToView.setContent(newContent); rpc.savePage(pageToView); rpc.grantContentPermission(new ContentPermission(adminUser, ContentPermissionType.VIEW), pageToView); suite.logIn(limitedUser, pageWithGadget); assertPageGadgetHasPermissionMessage(); }
public void testSpacePermission() { userHelper.createUser(limitedUser); Space restrictedSpace = new Space("RES", "Restricted Space"); rpc.createSpace(restrictedSpace); final String newContent = "Page restricted by space"; Page pageToViewInRestrictedSpace = new Page(restrictedSpace, "Page restricted by space", newContent); rpc.createPage(pageToViewInRestrictedSpace); pageWithGadget.setContent(getPageGadgetMacroMarkupForPage(pageToViewInRestrictedSpace)); rpc.savePage(pageWithGadget); // Grant page permission but not space permission to the page to view rpc.grantContentPermission(new ContentPermission(limitedUser, ContentPermissionType.VIEW), pageToViewInRestrictedSpace); rpc.grantContentPermission(new ContentPermission(adminUser, ContentPermissionType.VIEW), pageToViewInRestrictedSpace); rpc.grantPermission(SpacePermission.VIEW, testSpace, limitedUser); rpc.revokePermission(SpacePermission.VIEW, restrictedSpace, limitedUser); suite.logIn(limitedUser, pageWithGadget); assertPageGadgetHasPermissionMessage(); }
public void testAddUserScrollsToNewRow() throws Exception { // 1. Add a load of users with restrictions for a page, plus a new user to add via the dialog addPlentyOUsersAndView(20, testPage); PageView view = suite.logIn(defaultUser, testPage); User addedUser = new User("addeduser", "testpass", "Added User", "blank@test.com"); userHelper.createUser(addedUser); // 2. View the restrictions dialog and add a new user PagePermissionsEditor permissionsEditor = view.clickPermissionsMetadataIcon(); ContentPermission addedPermission = new ContentPermission(addedUser, VIEW); permissionsEditor.addContentPermission(addedPermission); assertTrue(permissionsEditor.isPermissionInViewport(addedPermission)); }
permissionsEditor.removePermission(new ContentPermission(users, VIEW)); permissionsEditor.removePermission(new ContentPermission(users, EDIT)); permissionsEditor.cancel();
public void testEditPageAddPermissionChangesCancelledFromDialog() throws Exception { editor.logInAndEdit(defaultUser, testPage); assertFalse(editor.isPermissionsSet()); PagePermissionsEditor permissionsEditor = editor.openPermissionsEditor(); // Add some permissions and cancel ContentPermission groupCanView = new ContentPermission(users, VIEW); permissionsEditor.addContentPermission(groupCanView); permissionsEditor.addContentPermission(defaultUserCanView); permissionsEditor.pressEscape(); // tests Escape handler a la CONF-17839 // Assert still no permissions set assertFalse(editor.isPermissionsSet()); // Check not in editor editor.openPermissionsEditor(); List<String> viewUsers = permissionsEditor.getPermissions(VIEW, USER); List<String> viewGroups = permissionsEditor.getPermissions(VIEW, GROUP); List<String> editUsers = permissionsEditor.getPermissions(EDIT, USER); List<String> editGroups = permissionsEditor.getPermissions(EDIT, GROUP); assertEquals(0, viewUsers.size()); assertEquals(0, viewGroups.size()); assertEquals(0, editUsers.size()); assertEquals(0, editGroups.size()); }
public void testParentPageWithInvertedComma() { Page invertedCommaPage = new Page(testSpace, "Page with an ' in it", "something"); rpc.createPage(invertedCommaPage); Page childOfInvertedCommaPage = new Page("Child of page with inverted comma", "something", invertedCommaPage); rpc.createPage(childOfInvertedCommaPage); PageView pageView = suite.logIn(defaultUser, invertedCommaPage); PagePermissionsEditor permissionsEditor = pageView.clickPermissionsMenuItem(); ContentPermission permission = new ContentPermission(defaultUser, ContentPermissionType.VIEW); ContentPermission noPermission = new ContentPermission(testUser, ContentPermissionType.VIEW); permissionsEditor.addContentPermission(permission); permissionsEditor.update(); assertHasPermission(invertedCommaPage, permission); assertHasNoPermission(invertedCommaPage, noPermission); pageView = suite.viewPage(childOfInvertedCommaPage); permissionsEditor = pageView.clickPermissionsMenuItem(); permissionsEditor.assertHasInheritedPermission(permission, invertedCommaPage); // Even if testUser is added they should be able to view the page permissionsEditor.addContentPermission(noPermission); permissionsEditor.update(); assertHasPermission(invertedCommaPage, permission); assertHasNoPermission(invertedCommaPage, noPermission); }
public void testPermissionsKeptAfterSaveErrorNewPage() { editor.logInAndCreatePage(defaultUser, testSpace); assertFalse(editor.isPermissionsSet()); PagePermissionsEditor pagePermissionsEditor = editor.openPermissionsEditor(); pagePermissionsEditor.clickChooseMe(); pagePermissionsEditor.update(); assertTrue(editor.isPermissionsSet()); // No title to force save error editor.save(); assertTrue(editor.isPermissionsSet()); // Permission should be retained after error pagePermissionsEditor = editor.openPermissionsEditor(); ContentPermission permission = new ContentPermission(defaultUser, ContentPermissionType.VIEW); pagePermissionsEditor.assertHasPermission(permission); }
public void testPermissionsKeptAfterSaveErrorExistingPage() { editor.logInAndEdit(defaultUser, testPage); assertFalse(editor.isPermissionsSet()); PagePermissionsEditor pagePermissionsEditor = editor.openPermissionsEditor(); pagePermissionsEditor.clickChooseMe(); pagePermissionsEditor.update(); assertTrue(editor.isPermissionsSet()); editor.setTitle(""); // Force save error editor.save(); assertTrue(editor.isPermissionsSet()); // Permission should be retained after error pagePermissionsEditor = editor.openPermissionsEditor(); ContentPermission permission = new ContentPermission(defaultUser, ContentPermissionType.VIEW); pagePermissionsEditor.assertHasPermission(permission); }
ContentPermission adminCanView = new ContentPermission(adminUser, VIEW); rpc.grantContentPermission(adminCanView, testPage);
public void testRestrictionsForGroupNamesWithSpaces() throws Exception { Group group = new Group("dangerous dungarees"); userHelper.createGroup(group); PageView pageView = suite.logIn(defaultUser, testPage); PagePermissionsEditor permissionsEditor = pageView.clickPermissionsMenuItem(); // 1. Add the spacey group via the popup GroupPickerPopup groupPickerPopup = permissionsEditor.chooseGroup(); groupPickerPopup.search("*"); groupPickerPopup.select(group); groupPickerPopup.addGroups(); // 2. Check that it was added, and save the restrictions ContentPermission groupCanView = new ContentPermission(group, VIEW); permissionsEditor.assertHasPermission(groupCanView); permissionsEditor.update(); // 3. Check that it was saved pageView.clickPermissionsMenuItem(); permissionsEditor.assertHasPermission(groupCanView); // 4. Remove the group and re-add it via the input field permissionsEditor.removePermission(groupCanView); permissionsEditor.addContentPermission(groupCanView); // 5. Check that it's there again. permissionsEditor.assertHasPermission(groupCanView); }