/**
* Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
package org.ralasafe.servlet;
import java.io.IOException;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ralasafe.privilege.Role;
import org.ralasafe.privilege.RoleManager;
import org.ralasafe.privilege.UserRoleManager;
import org.ralasafe.user.User;
import org.ralasafe.user.UserManager;
import org.ralasafe.util.StringUtil;
import org.ralasafe.util.Util;
public class UserRoleAction extends Action {
private static final Log log=LogFactory.getLog( UserRoleAction.class );
protected void doPost( HttpServletRequest req, HttpServletResponse resp )
throws ServletException, IOException {
String strUserId=req.getParameter( "userId" );
String[] assignRoleIds=req.getParameterValues( "roleId" );
Collection roleIds=Util.convert2IntegerCollection( assignRoleIds );
Object userId=WebUtil.convertUserId( req, strUserId );
// log
if( log.isDebugEnabled() ) {
log.debug( "userId="+strUserId+", assignRoleIds="+assignRoleIds );
}
UserRoleManager userRoleManager=WebUtil.getUserRoleManager( req );
userRoleManager.assignRoles( userId, roleIds );
}
protected void doGet( HttpServletRequest req, HttpServletResponse resp )
throws ServletException, IOException {
String strUserId=req.getParameter( "userId" );
Object userId=WebUtil.convertUserId( req, strUserId );
UserManager userManager=WebUtil.getUserManager( req );
User user=new User();
user.setId( userId );
user=userManager.selectById( user );
UserRoleManager userRoleManager=WebUtil.getUserRoleManager( req );
Collection assignedRoles=userRoleManager.getRoles( userId );
Set assignedRoleIds=new HashSet();
for( Iterator iter=assignedRoles.iterator(); iter.hasNext(); ) {
Role role=(Role) iter.next();
assignedRoleIds.add( new Integer(role.getId()) );
}
// search key
String searchName=req.getParameter( "name" );
/* if(searchName!=null){
searchName=new String(searchName.getBytes("ISO-8859-1"),"UTF-8");
}*/
RoleManager roleMng=WebUtil.getRoleManager( req );
Collection roles=null;
if( StringUtil.isEmpty( searchName ) ) {
roles=roleMng.getAllRoles();
} else {
roles=roleMng.getLikelyRoles( searchName );
}
req.setAttribute( "roles", roles );
req.setAttribute( "assignedRoleIds", assignedRoleIds );
req.setAttribute( "user", user );
WebUtil.forward( req, resp, "/ralasafe/user/userRoles.jsp" );
}
}