From: Walter M. <wal...@us...> - 2007-02-21 19:41:27
|
User: walterim Date: 07/02/21 11:41:27 Modified: andromda-jsf2/src/main/resources/templates/jsf2/configuration faces-config.xml.vsl web.xml.vsl andromda-jsf2/src/main/uml JSFMetafacadeModel.xml.zip andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades JSFManageableEntityLogicImpl.java Log: Added security (roles) support to the crud feature. Revision Changes Path 1.9 +2 -2 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/configuration/faces-config.xml.vsl Index: faces-config.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/configuration/faces-config.xml.vsl,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- faces-config.xml.vsl 21 Feb 2007 10:11:41 -0000 1.8 +++ faces-config.xml.vsl 21 Feb 2007 19:41:22 -0000 1.9 @@ -131,11 +131,11 @@ <property-name>controllerAction</property-name> <value>init</value> </managed-property> -#set ($securityEnabled = $stringUtils.isNotBlank($securityRealm) && !$manageable.users.empty ) +#set ($securityEnabled = $stringUtils.isNotBlank($securityRealm) && !$manageable.roles.empty ) #if ($securityEnabled) <managed-property> <property-name>roles</property-name> - <value>$manageable.users</value> + <value>$manageable.actionRoles</value> </managed-property> #end <managed-property> 1.8 +3 -3 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/configuration/web.xml.vsl Index: web.xml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/configuration/web.xml.vsl,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- web.xml.vsl 21 Feb 2007 10:11:41 -0000 1.7 +++ web.xml.vsl 21 Feb 2007 19:41:23 -0000 1.8 @@ -404,10 +404,10 @@ </description> <url-pattern>${manageable.viewFullPath}.${jsfUtils.viewExtension}</url-pattern> </web-resource-collection> -#if (!$manageable.users.empty) +#if (!$manageable.roles.empty) <auth-constraint> -#foreach ($user in $manageable.users) - <role-name>${user.name}</role-name> +#foreach ($role in $manageable.roles) + <role-name>${role.name}</role-name> #end </auth-constraint> #end 1.4 +192 -181 cartridges/andromda-jsf2/src/main/uml/JSFMetafacadeModel.xml.zip <<Binary file>> 1.3 +66 -0 cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java Index: JSFManageableEntityLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- JSFManageableEntityLogicImpl.java 20 Feb 2007 10:12:05 -0000 1.2 +++ JSFManageableEntityLogicImpl.java 21 Feb 2007 19:41:27 -0000 1.3 @@ -4,12 +4,20 @@ import org.andromda.cartridges.jsf2.JSFUtils; import org.andromda.cartridges.jsf2.JSFProfile; import org.andromda.utils.StringUtilsHelper; +import org.andromda.metafacades.uml.DependencyFacade; +import org.andromda.metafacades.uml.Role; import org.andromda.metafacades.uml.UMLMetafacadeProperties; import org.andromda.metafacades.uml.AttributeFacade; +import org.apache.commons.collections.Closure; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.Predicate; +import org.apache.commons.collections.Transformer; import org.apache.commons.lang.StringUtils; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; +import java.util.LinkedHashSet; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.andromda.metafacades.uml.ModelElementFacade; @@ -518,4 +526,62 @@ return serialVersionUID; } + /** + * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getRoles() + */ + protected Collection handleGetRoles() + { + //copied form the Service <<Metafacade>> + final Collection roles = new ArrayList(this.getTargetDependencies()); + CollectionUtils.filter(roles, new Predicate() + { + public boolean evaluate(final Object object) + { + DependencyFacade dependency = (DependencyFacade)object; + return dependency != null && dependency.getSourceElement() instanceof Role; + } + }); + CollectionUtils.transform(roles, new Transformer() + { + public Object transform(final Object object) + { + return ((DependencyFacade)object).getSourceElement(); + } + }); + final Collection allRoles = new LinkedHashSet(roles); + // add all roles which are generalizations of this one + CollectionUtils.forAllDo(roles, new Closure() + { + public void execute(final Object object) + { + allRoles.addAll(((Role)object).getAllSpecializations()); + } + }); + return allRoles; + } + + /** + * @see org.andromda.cartridges.jsf2.metafacades.JSFManageableEntity#getActionRoles() + */ + protected String handleGetActionRoles() + { + //copied from JSFUseCaseLogicImpl + final Collection users = this.getRoles(); + final StringBuffer rolesBuffer = new StringBuffer(); + boolean first = true; + for (final Iterator userIterator = users.iterator(); userIterator.hasNext();) + { + if (first) + { + first = false; + } + else + { + rolesBuffer.append(','); + } + final Role role = (Role)userIterator.next(); + rolesBuffer.append(role.getName()); + } + return rolesBuffer.toString(); + } } \ No newline at end of file |