added default type to user manager

This commit is contained in:
Sebastian Sdorra
2012-03-16 09:44:32 +01:00
parent d122b0bae6
commit e1162ed025
5 changed files with 52 additions and 24 deletions

View File

@@ -129,6 +129,13 @@ public class XmlGroupManager extends AbstractGroupManager
@Override
public void create(Group group) throws GroupException, IOException
{
String type = group.getType();
if (Util.isEmpty(type))
{
group.setType(groupDAO.getType());
}
if (logger.isInfoEnabled())
{
logger.info("create group {} of type {}", group.getName(),
@@ -142,13 +149,6 @@ public class XmlGroupManager extends AbstractGroupManager
throw new GroupAllreadyExistExeption();
}
String type = group.getType();
if (Util.isEmpty(type))
{
group.setType(groupDAO.getType());
}
group.setCreationDate(System.currentTimeMillis());
groupDAO.add(group);
fireEvent(group, HandlerEvent.CREATE);

View File

@@ -160,6 +160,13 @@ public class XmlUserManager extends AbstractUserManager
@Override
public void create(User user) throws UserException, IOException
{
String type = user.getType();
if (Util.isEmpty(type))
{
user.setType(userDAO.getType());
}
if (logger.isInfoEnabled())
{
logger.info("create user {} of type {}", user.getName(), user.getType());
@@ -177,13 +184,6 @@ public class XmlUserManager extends AbstractUserManager
throw new UserAllreadyExistException(user.getName());
}
String type = user.getType();
if (Util.isEmpty(type))
{
user.setType(userDAO.getType());
}
AssertUtil.assertIsValid(user);
user.setCreationDate(System.currentTimeMillis());
userDAO.add(user);
@@ -457,6 +457,18 @@ public class XmlUserManager extends AbstractUserManager
return getAll(null, start, limit);
}
/**
* Method description
*
*
* @return
*/
@Override
public String getDefaultType()
{
return userDAO.getType();
}
/**
* Method description
*

View File

@@ -40,6 +40,8 @@ import sonia.scm.Manager;
import sonia.scm.search.Searchable;
/**
* The central class for managing {@link User} objects.
* This class is a singleton and is available via injection.
*
* @author Sebastian Sdorra
*/
@@ -49,12 +51,23 @@ public interface UserManager
{
/**
* Method description
* Returns true if a user with the specified username exists.
*
*
* @param username
* @param username username of the user
*
* @return
* @return true if the user exists
*/
public boolean contains(String username);
//~--- get methods ----------------------------------------------------------
/**
* Returns the default type for users.
*
*
* @return default user type
* @since 1.14
*/
public String getDefaultType();
}

View File

@@ -49,7 +49,6 @@ import sonia.scm.security.EncryptionHandler;
import sonia.scm.user.User;
import sonia.scm.user.UserException;
import sonia.scm.user.UserManager;
import sonia.scm.user.xml.XmlUserManager;
import sonia.scm.util.AssertUtil;
import sonia.scm.web.security.WebSecurityContext;
@@ -64,7 +63,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import sonia.scm.user.xml.XmlUserDAO;
/**
*
@@ -145,8 +143,8 @@ public class ChangePasswordResource
logger.info("password change for user {}", currentUser.getName());
}
// TODO remove dependency to xml implementation
if (currentUser.getType().equals(XmlUserDAO.TYPE))
// Only account of the default type can change their password
if (currentUser.getType().equals(userManager.getDefaultType()))
{
User dbUser = userManager.get(currentUser.getName());
@@ -163,7 +161,12 @@ public class ChangePasswordResource
}
else
{
logger.error("only xml user can change their passwor");
//J-
logger.error(
"Only account of the default type ({}) can change their password",
userManager.getDefaultType()
);
//J+
response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}

View File

@@ -94,7 +94,7 @@ Sonia.group.FormPanel = Ext.extend(Sonia.rest.FormPanel,{
if ( debug ){
console.debug( 'create group: ' + item.name );
}
item.type = 'xml';
// item.type = 'xml';
var url = restUrl + 'groups.json';
var el = this.el;