package com.sobey.cmop.mvc.web.account;
import java.util.List;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.google.common.collect.Lists;
import com.sobey.cmop.mvc.comm.BaseController;
import com.sobey.cmop.mvc.constant.AccountConstant;
import com.sobey.cmop.mvc.entity.Group;
import com.sobey.cmop.mvc.entity.User;
/**
* 用户注册的Controller.
*
* @author liukai
*/
@Controller
@RequestMapping(value = "/register")
public class RegisterController extends BaseController {
/**
* 跳转到注册页面
*/
@RequestMapping(method = RequestMethod.GET)
public String registerForm() {
return "account/register";
}
/**
* 注册用户
*/
@RequestMapping(method = RequestMethod.POST)
public String register(User user, @RequestParam("departmentId") Integer departmentId, Model model) {
List<Group> groupList = Lists.newArrayList();
// 注册用户默认给予 2:apply 申请人 的权限角色.
groupList.add(comm.accountService.getGroup(AccountConstant.DefaultGroups.apply.toInteger()));
user.setGroupList(groupList);
// 给予 2:apply 申请人 的用户类型
user.setType(AccountConstant.UserTypes.apply.toInteger());
user.setDepartment(comm.accountService.getDepartment(departmentId));
comm.accountService.registerUser(user);
// 登录系统
UsernamePasswordToken token = new UsernamePasswordToken();
token.setPassword(user.getPlainPassword().toCharArray());
token.setUsername(user.getLoginName());
SecurityUtils.getSubject().login(token);
return "redirect:/";
}
}