导入系统用户
URULE支持接口的方式导入系统用户,选择该类型后系统不支持用户注册,改名,邮箱调整,密码调整等操作。
用户对象的结构:
package com.bstek.urule.console.database.model;
import java.util.List;
public class User {
/**
* 用户账号
*/
private String id;
/**
* 用户名
*/
private String name;
/**
* 用户密码
*/
private String password;
/**
* 用户邮箱
*/
private String email;
/**
* 用户所属团队
*/
private List<Group> groups;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public List<Group> getGroups() {
return groups;
}
public void setGroups(List<Group> groups) {
this.groups = groups;
}
}
对应用户的服务类,系统团队和项目管理的用户信息就来源于该服务类提供的用户对象。
com.bstek.urule.console.database.service.user.UserService
接口内容:
package com.bstek.urule.console.database.service.user;
import com.bstek.urule.console.database.model.User;
/**
* 用户服务类接口
* @author william.jiang
* @since 2021年4月8日
*/
public interface UserService {
public static final String BEAN_ID = "urule.userService";
/**
* 获取用户对象
* @param account 用户账号
* @return 用户对象
*/
User get(String account);
/**
* 用户密码验证
* @param account 用户账号
* @param password 密码
* @return 用户对象(如果有初始化默认的团队信息,则需要定义User对象的groups属性)
*/
User validate(String account, String password);
}
其中validate方法在用户登录的时候调用,这个时候不仅要返回用户对象信息还需要返回用户的团队信息
参考实现:
@Service(UserService.BEAN_ID)
public class UserServiceImpl implements UserService {
@Override
public User get(String account) {
if ("test".equals(account)) return null;
User user = new User();
user.setId(account);
user.setEmail(account+"@bstek.com");
user.setEnable(true);
user.setName("用户"+account);
return user;
}
@Override
public User validate(String account, String password) {
if ("123456".equals(password)) {
User user = get(account);
List<Group> userGroups = new ArrayList<Group>();
Group group = new Group();
group.setId("bstekteam");
group.setName("上海锐道信息技术有限公司");
group.setCreateUser("admin");
userGroups.add(group);
user.setGroups(userGroups);
return user;
}
throw new RuleException("不存在该用户对象");
}
}