|
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
|