[seam-commits] Seam SVN: r8493 - trunk/src/main/org/jboss/seam/security/management.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Wed Jul 23 01:51:34 EDT 2008
Author: shane.bryzak at jboss.com
Date: 2008-07-23 01:51:33 -0400 (Wed, 23 Jul 2008)
New Revision: 8493
Modified:
trunk/src/main/org/jboss/seam/security/management/JpaIdentityStore.java
Log:
create new user if grantRole() can't find an existing user
Modified: trunk/src/main/org/jboss/seam/security/management/JpaIdentityStore.java
===================================================================
--- trunk/src/main/org/jboss/seam/security/management/JpaIdentityStore.java 2008-07-23 05:39:44 UTC (rev 8492)
+++ trunk/src/main/org/jboss/seam/security/management/JpaIdentityStore.java 2008-07-23 05:51:33 UTC (rev 8493)
@@ -223,10 +223,30 @@
public boolean grantRole(String username, String role)
{
+ if (roleClass == null) return false;
+
Object user = lookupUser(username);
if (user == null)
{
- throw new NoSuchUserException("Could not grant role, no such user '" + username + "'");
+ if (userPasswordProperty != null)
+ {
+ // If no userPasswordProperty is set, it means that authentication is being performed
+ // by another identity store and this one is just managing roles
+ throw new NoSuchUserException("Could not grant role, no such user '" + username + "'");
+ }
+ else
+ {
+ // We need to create a new user object
+ if (createUser(username, null))
+ {
+ user = lookupUser(username);
+ }
+ else
+ {
+ throw new IdentityManagementException(
+ "Could not grant role - user does not exist and an attempt to create the user failed.");
+ }
+ }
}
Object roleToGrant = lookupRole(role);
More information about the seam-commits
mailing list