/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.access; import java.util.Collection; import org.jdom.Element; import com.enonic.cms.core.security.group.GroupEntity; import com.enonic.cms.core.security.group.GroupType; public class ContentAccessXmlCreator { public Element createAccessRightsElement( final Collection<ContentAccessEntity> contentAccesses ) { final Element accessrightsEl = new Element( "accessrights" ); accessrightsEl.setAttribute( "type", "1" ); // // type content for ( final ContentAccessEntity contentAccess : contentAccesses ) { accessrightsEl.addContent( doCreateAccessRightElement( contentAccess ) ); } return accessrightsEl; } private Element doCreateAccessRightElement( final ContentAccessEntity contentAccess ) { final GroupEntity group = contentAccess.getGroup(); final GroupType groupType = group.getType(); final Element accessrightEl = new Element( "accessright" ); accessrightEl.setAttribute( "groupkey", contentAccess.getGroup().getGroupKey().toString() ); accessrightEl.setAttribute( "grouptype", Integer.toString( groupType.toInteger() ) ); if ( groupType == GroupType.USER ) { accessrightEl.setAttribute( "uid", group.getUser().getName() ); accessrightEl.setAttribute( "fullname", group.getUser().getDisplayName() ); accessrightEl.setAttribute( "qualifiedName", group.getUser().getQualifiedName().toString() ); } else if ( ( groupType == GroupType.USERSTORE_GROUP ) || ( groupType == GroupType.GLOBAL_GROUP ) ) { accessrightEl.setAttribute( "groupname", group.getName() ); accessrightEl.setAttribute( "qualifiedname", group.getQualifiedName().toString() ); } else { accessrightEl.setAttribute( "groupname", groupType.getName() ); } if ( contentAccess.isReadAccess() ) { accessrightEl.setAttribute( "read", "true" ); } if ( contentAccess.isUpdateAccess() ) { accessrightEl.setAttribute( "update", "true" ); } if ( contentAccess.isDeleteAccess() ) { accessrightEl.setAttribute( "delete", "true" ); } return accessrightEl; } }