private NodeRef createFolderWithPermission(NodeRef parent, String username, String permission) { // Authenticate as system user because the current user should not be node owner AuthenticationComponent authenticationComponent = (AuthenticationComponent) this.applicationContext.getBean("authenticationComponent"); authenticationComponent.setSystemUserAsCurrentUser(); // Create the folder NodeRef folder = nodeService .createNode( parent, ContentModel.ASSOC_CHILDREN, QName.createQName("TestFolder" + GUID.generate()), ContentModel.TYPE_CONTENT) .getChildRef(); // Apply permissions to folder permissionService.deletePermissions(folder); permissionService.setInheritParentPermissions(folder, false); permissionService.setPermission(folder, userName, permission, true); // Authenticate test user TestWithUserUtils.authenticateUser( this.userName, PWD, this.rootNodeRef, this.authenticationService); return folder; }
protected void onSetUpInTransaction() throws Exception { System.err.println("onSetUpInTransaction"); super.onSetUpInTransaction(); this.nodeService = (NodeService) super.applicationContext.getBean("dbNodeService"); assertNotNull(this.nodeService); final FileFolderService fileFolderService = (FileFolderService) super.applicationContext.getBean("fileFolderService"); assertNotNull(fileFolderService); this.formsService = (FormsService) super.applicationContext.getBean("FormsService"); assertNotNull(this.formsService); final MutableAuthenticationService authenticationService = (MutableAuthenticationService) applicationContext.getBean("authenticationService"); authenticationService.clearCurrentSecurityContext(); final MutableAuthenticationDao authenticationDAO = (MutableAuthenticationDao) applicationContext.getBean("authenticationDao"); // Create a workspace that contains the 'live' nodes final StoreRef testStoreRef = this.nodeService.createStore( StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.currentTimeMillis()); // Get a reference to the root node final NodeRef rootNodeRef = this.nodeService.getRootNode(testStoreRef); // Create an authenticate the user if (!authenticationDAO.userExists(AuthenticationUtil.getAdminUserName())) { authenticationService.createAuthentication( AuthenticationUtil.getAdminUserName(), "admin".toCharArray()); } TestWithUserUtils.authenticateUser( AuthenticationUtil.getAdminUserName(), "admin", rootNodeRef, authenticationService); // set up a faces context final MockExternalContext ec = new MockExternalContext( new MockServletContext(), new MockHttpServletRequest(), new MockHttpServletResponse()); final StaticWebApplicationContext ac = new StaticWebApplicationContext(); ac.setParent(this.applicationContext); this.applicationContext = ac; ec.getApplicationMap() .put(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, this.applicationContext); new MockFacesContext(ec); final FileInfo folderInfo = fileFolderService.create(rootNodeRef, "test_form", WCMAppModel.TYPE_FORMFOLDER); final HashMap<QName, Serializable> props = new HashMap<QName, Serializable>(); this.nodeService.addAspect(folderInfo.getNodeRef(), WCMAppModel.ASPECT_FORM, props); this.mockForm = new MockForm(folderInfo.getNodeRef(), this.formsService); }
private NodeRef createNodeWithPermission(NodeRef parent, String username, String permission) { // Authenticate as system user because the current user should not be node owner AuthenticationComponent authenticationComponent = (AuthenticationComponent) this.applicationContext.getBean("authenticationComponent"); authenticationComponent.setSystemUserAsCurrentUser(); // Create the node as a copy of prepared NodeRef node = copyService.copy(nodeRef, parent, ContentModel.ASSOC_CHILDREN, ContentModel.TYPE_CONTENT); // Apply permissions to node permissionService.deletePermissions(node); permissionService.setInheritParentPermissions(node, false); permissionService.setPermission(node, userName, permission, true); // Authenticate test user TestWithUserUtils.authenticateUser( this.userName, PWD, this.rootNodeRef, this.authenticationService); return node; }
/** On setup in transaction implementation */ @Override protected void onSetUpInTransaction() throws Exception { // Set the services this.nodeService = (NodeService) this.applicationContext.getBean("nodeService"); this.cociService = (CheckOutCheckInService) this.applicationContext.getBean("checkOutCheckInService"); this.contentService = (ContentService) this.applicationContext.getBean("contentService"); this.versionService = (VersionService) this.applicationContext.getBean("versionService"); this.authenticationService = (MutableAuthenticationService) this.applicationContext.getBean("authenticationService"); this.lockService = (LockService) this.applicationContext.getBean("lockService"); this.transactionService = (TransactionService) this.applicationContext.getBean("transactionComponent"); this.permissionService = (PermissionService) this.applicationContext.getBean("permissionService"); this.copyService = (CopyService) this.applicationContext.getBean("copyService"); // Authenticate as system to create initial test data set AuthenticationComponent authenticationComponent = (AuthenticationComponent) this.applicationContext.getBean("authenticationComponent"); authenticationComponent.setSystemUserAsCurrentUser(); // Create the store and get the root node reference this.storeRef = nodeService.createStore(StoreRef.PROTOCOL_WORKSPACE, "Test_" + System.currentTimeMillis()); this.rootNodeRef = nodeService.getRootNode(storeRef); // Create the node used for tests ChildAssociationRef childAssocRef = nodeService.createNode( rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("test"), ContentModel.TYPE_CONTENT); this.nodeRef = childAssocRef.getChildRef(); nodeService.addAspect(this.nodeRef, ContentModel.ASPECT_TITLED, null); nodeService.setProperty(this.nodeRef, ContentModel.PROP_NAME, TEST_VALUE_NAME); nodeService.setProperty(this.nodeRef, PROP2_QNAME, TEST_VALUE_2); // Add the initial content to the node ContentWriter contentWriter = this.contentService.getWriter(this.nodeRef, ContentModel.PROP_CONTENT, true); contentWriter.setMimetype("text/plain"); contentWriter.setEncoding("UTF-8"); contentWriter.putContent(CONTENT_1); // Add the lock and version aspects to the created node nodeService.addAspect(this.nodeRef, ContentModel.ASPECT_VERSIONABLE, null); nodeService.addAspect(this.nodeRef, ContentModel.ASPECT_LOCKABLE, null); // Create and authenticate the user this.userName = "******" + GUID.generate(); TestWithUserUtils.createUser( this.userName, PWD, this.rootNodeRef, this.nodeService, this.authenticationService); TestWithUserUtils.authenticateUser( this.userName, PWD, this.rootNodeRef, this.authenticationService); this.userNodeRef = TestWithUserUtils.getCurrentUser(this.authenticationService); permissionService.setPermission( this.rootNodeRef, this.userName, PermissionService.ALL_PERMISSIONS, true); permissionService.setPermission( this.nodeRef, this.userName, PermissionService.ALL_PERMISSIONS, true); folderNodeRef = nodeService .createNode( rootNodeRef, ContentModel.ASSOC_CHILDREN, QName.createQName("test"), ContentModel.TYPE_FOLDER, Collections.<QName, Serializable>singletonMap(ContentModel.PROP_NAME, "folder")) .getChildRef(); fileNodeRef = nodeService .createNode( folderNodeRef, ContentModel.ASSOC_CONTAINS, QName.createQName("test"), ContentModel.TYPE_CONTENT, Collections.<QName, Serializable>singletonMap(ContentModel.PROP_NAME, "file")) .getChildRef(); contentWriter = this.contentService.getWriter(fileNodeRef, ContentModel.PROP_CONTENT, true); contentWriter.setMimetype("text/plain"); contentWriter.setEncoding("UTF-8"); contentWriter.putContent(CONTENT_1); }