導入系統用戶
URULE支持接口的方式導入系統用戶,選擇該類型後系統不支持用戶注冊,改名,郵箱調整,密碼調整等操作(zuò)。
用戶對象的結構:
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;
}
}
對應用戶的服務類,系統團隊和(hé)項目管理(lǐ)的用戶信息就來(lái)源于該服務類提供的用戶對象。
com.bstek.urule.console.database.service.user.UserService
接口內(nèi)容:
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 用戶對象(如果有(yǒu)初始化默認的團隊信息,則需要定義User對象的groups屬性)
*/
User validate(String account, String password);
}
其中validate方法在用戶登錄的時(shí)候調用,這個(gè)時(shí)候不僅要返回用戶對象信息還(hái)需要返回用戶的團隊信息
參考實現:
@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("不存在該用戶對象");
}
}