Author: deepal
Date: Wed Feb 27 01:44:19 2008
New Revision: 14262
Log:
fixing issue 235
- adding a way to add users and assign user role from APP (requirement for PHP)
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
==============================================================================
---
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
(original)
+++
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
Wed Feb 27 01:44:19 2008
@@ -28,6 +28,8 @@
static final String PARAMETER_VERSION = "version";
static final String PARAMETER_RESTORE = "restore";
static final String PARAMETER_RENAME = "rename";
+ static final String PARAMETER_ADD_USER = "adduser";
+ static final String PARAMETER_ADD_ROLE = "addrole";
static final String PARAMETER_TAGS = "tags";
static final String PARAMETER_TAG_PATHS = "tagpaths";
static final String PARAMETER_TAGS_REMOVED = "removeTags";
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
==============================================================================
---
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
(original)
+++
trunk/registry/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
Wed Feb 27 01:44:19 2008
@@ -36,6 +36,8 @@
import org.apache.commons.logging.LogFactory;
import org.wso2.registry.Comment;
import org.wso2.registry.*;
+import org.wso2.registry.users.UserRealm;
+import org.wso2.registry.users.UserStoreException;
import org.wso2.registry.exceptions.ResourceNotFoundException;
import org.wso2.registry.i18n.Messages;
import org.wso2.registry.jdbc.realm.RegistryRealm;
@@ -213,6 +215,24 @@
Integer.parseInt(entryContent));
} else if (PARAMETER_RENAME.equals(modifier)) {
getSecureRegistry(request).rename(resourcePath, entryContent);
+ } else if (PARAMETER_ADD_USER.equals(modifier)){
+ String userName = entry.getSimpleExtension(new QName(NAMESPACE,
+ "username"));
+ String password = entry.getSimpleExtension(new QName(NAMESPACE,
+ "password"));
+ String confirmPassword = entry.getSimpleExtension(new
QName(NAMESPACE,
+ "confirmpassword"));
+ String rolename = entry.getSimpleExtension(new QName(NAMESPACE,
+ "rolename"));
+ String friendlyName = entry.getSimpleExtension(new
QName(NAMESPACE,
+ "friendlyName"));
+ addUser(userName ,password ,confirmPassword ,rolename
,friendlyName ,request);
+ } else if (PARAMETER_ADD_ROLE.equals(modifier)){
+ String userName = entry.getSimpleExtension(new QName(NAMESPACE,
+ "username"));
+ String rolename = entry.getSimpleExtension(new QName(NAMESPACE,
+ "rolename"));
+ assignRole(userName ,rolename ,request);
} else {
//TODO : We need to implement the other operation as well
return new EmptyResponseContext(500);
@@ -1031,4 +1051,45 @@
private String sanitizeResourceName(String name) {
return name.replaceAll("[\\?\\&\\(\\)]", "");
}
+
+ private void addUser(String userName ,
+ String password ,
+ String confirmedPassword ,
+ String roleName ,
+ String friendlyName ,
+ RequestContext request) throws Exception {
+ Registry registry = getSecureRegistry(request);
+ if (userName == null || password == null || confirmedPassword == null)
{
+ throw new RegistryException("Required properties are null");
+ }
+ if (!password.equals(confirmedPassword)) {
+ throw new RegistryException("Password does not macth");
+ }
+ if (registry instanceof SecureRegistry) {
+ UserRealm userRealm = ((SecureRegistry)registry).getUserRealm();
+
+ userRealm.getUserStoreAdmin().addUser(userName, password);
+
+ Map currentProperties =
userRealm.getUserStoreAdmin().getUserProperties(userName);
+ currentProperties.put("friendlyName", friendlyName);
+ userRealm.getUserStoreAdmin().setUserProperties(userName,
currentProperties);
+
+ if (roleName != null && !roleName.equalsIgnoreCase("1")) {
+ userRealm.getUserStoreAdmin().addUserToRole(userName,
roleName);
+ }
+ }
+ }
+
+ private void assignRole(String userName , String roleName, RequestContext
request) throws Exception{
+ Registry registry = getSecureRegistry(request);
+ if (registry instanceof SecureRegistry) {
+ UserRealm realm = ((SecureRegistry)registry).getUserRealm();
+ try {
+ realm.getUserStoreAdmin().addUserToRole(userName, roleName);
+ } catch (UserStoreException e) {
+ String msg = "Could not add the user " + userName + " to the
role " + roleName + ". Caused by: " + e.getMessage();
+ throw new RegistryException(msg);
+ }
+ }
+ }
}
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
==============================================================================
---
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
(original)
+++
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/VersionedResourceDAO.java
Wed Feb 27 01:44:19 2008
@@ -941,6 +941,18 @@
addResourceVersion(resource, conn);
resource.setPath(resourcePath);
resource.setId(resourceID);
+
+ long fromResourceId = getResourceID(oldPath , conn);
+ //copying the comments
+ CommentsDAO commentsDAO = new CommentsDAO();
+ commentsDAO.copyComments(oldPath ,resourceID ,conn);
+ //coping the tags
+ TagsDAO tags = new TagsDAO();
+ tags.copyTags(fromResourceId , resourceID ,conn);
+
+ // copy ratings
+ RatingsDAO ratingsDAO = new RatingsDAO();
+ ratingsDAO.copyRatings(fromResourceId ,resourceID ,conn);
markDeleted(resourcePath, conn);
deleteResource(resource, conn);
}
_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev