[Yanel-commits] rev 49965 -
public/yanel/trunk/src/resources/user-mgmt/src/java/org/wyona/yanel/impl/resources
michi at wyona.com
michi at wyona.com
Fri May 28 09:30:44 CEST 2010
Author: michi
Date: 2010-05-28 09:30:43 +0200 (Fri, 28 May 2010)
New Revision: 49965
Modified:
public/yanel/trunk/src/resources/user-mgmt/src/java/org/wyona/yanel/impl/resources/CreateUserResource.java
Log:
also create a policy if a user is created
Modified: public/yanel/trunk/src/resources/user-mgmt/src/java/org/wyona/yanel/impl/resources/CreateUserResource.java
===================================================================
--- public/yanel/trunk/src/resources/user-mgmt/src/java/org/wyona/yanel/impl/resources/CreateUserResource.java 2010-05-28 06:59:30 UTC (rev 49964)
+++ public/yanel/trunk/src/resources/user-mgmt/src/java/org/wyona/yanel/impl/resources/CreateUserResource.java 2010-05-28 07:30:43 UTC (rev 49965)
@@ -46,13 +46,28 @@
String email = getParameterAsString(PARAM_EMAIL);
String password = getParameterAsString(PARAM_PASSWORD1);
try {
+ // Create user
if (log.isDebugEnabled()) {
log.debug("creating user: " + id + " " + name + " " + email);
}
userManager.createUser(id, name, email, password);
+
+ // Create access policy
+ org.wyona.security.core.api.PolicyManager policyManager = getRealm().getPolicyManager();
+ org.wyona.security.core.api.Policy policy = policyManager.createEmptyPolicy();
+ org.wyona.security.core.UsecasePolicy usecasePolicy = new org.wyona.security.core.UsecasePolicy("view");
+ usecasePolicy.addIdentity(new org.wyona.security.core.api.Identity(id), true);
+ policy.addUsecasePolicy(usecasePolicy);
+ // TODO: Replace "/users" by org.wyona.yanel.servlet.YanelGlobalResourceTypeMatcher#usersPathPrefix
+ policyManager.setPolicy("/" + getYanel().getReservedPrefix() + "/users/" + id + ".html", policy);
+
addInfoMessage("User '" + id + "' (" + name + ") created successfully. (IMPORTANT: Please make sure to add user either to an existing group or to an access policy, because otherwise user will not have any explicite rights.)");
} catch (AccessManagementException e) {
+ log.error(e, e);
throw new UsecaseException(e.getMessage(), e);
+ } catch (Exception e) {
+ log.error(e, e);
+ throw new UsecaseException(e.getMessage(), e);
}
}
More information about the Yanel-commits
mailing list