可以在工程设置中添加组,用户,并为用户添加对应的权限组,如下图所示
或者是选择【密码管理】内置页,给用户赋予权限
可以配合页面控件属性中的【权限控制】进行使用
下面将对一些相关的接口进行介绍
/**
* @brief 用户结构体
*/
struct User{
public:
string uid;
string name;
string pwd;
};
/**
* @brief 权限管理
*/
class AuthMgr{
public:
/**
* @brief 注册用户组
* @param grpname 用户组名称
* @return 新用户组ID,已存在或其它原因则返回空
*/
static string addGroup(string grpname);
/**
* @brief 删除用户组
* @param gid 用户组id
* @return 返回是否成功
*/
static bool delGroup(string gid);
/**
* @brief 重命名用户组
* @param gid 用户组id
* @param grpname 新的用户组名称
* @return 返回是否成功
*/
static bool renGroup(string gid, string grpname);
/**
* @brief 添加用户
* @param uid 指定用户唯一id.
* uid为空时系统将生成唯一id。若指定的id已经存在,则添加失败,返回空串""
* @param name 指定用户名称.
* name为空时则添加失败,返回空串""
* @param pwd 批定用户密码.
* @param gid 指定所属组id.
* gid为空时,则不分组。不为空,且组不存在时,则添加失败,返回空串""
* @return 添加成功则返回新增用户id;失败则返回空串""
*/
static string addUser(string uid="", string name="", string pwd="", string gid="");
/**
* @brief 修改密码
* @param uname 用户名
* @param oldpwd 旧密码
* @param newpwd1 新密码
* @param newpwd2 确认新密码
* @return 返回是否成功
*/
static bool changePwd(string uname="", string oldpwd = "", string newpwd1="", string newpwd2="");
/**
* @brief 用户验证
* @param uid 用户ID
* @param pwd 验证密码
* @param user 返回用户信息
* @return 返回是否成功
*/
static bool userAuth(string uid, string pwd, User& user);
/**
* @brief 用户注销
* @return 返回是否成功
*/
static bool userLogout();
/**
* @brief 重命名用户
* @param uid 用户id
* @param uname 用户新名称
* @return 返回是否成功
*/
static bool renUser(string uid, string uname);
/**
* @brief 删除用户
* @param uid 用户id
* @return 返回是否成功
*/
static bool delUser(string uid);
/**
* @brief 添加用户到组
* @param uid 用户id
* @param gid 组id
* @return 返回是否成功
*/
static bool addUserToGroup(string uid, string gid);
/**
* @brief 将用户移出组
* @param uid 用户id
* @param gid 用户组id
* @return 返回是否成功
*/
static bool delUserFromGroup(string uid, string gid);
/**
* @brief 获取所有组<组id, 组name>
* @return
*/
static vector<KV_Str_Str> getAllGroupLists();
/**
* @brief 获取所有用户
* @return
*/
static vector<User> getUserLists();
/**
* @brief 获取用户所属组(用户可能属于多个组)
* @param uid 用户id
* @return vector<组id,组名称>
*/
static vector<KV_Str_Str> getUserGroups(string uid);
/**
* @brief 获取用户组用户列表
* @param gid 用户组id
* @return
*/
static vector<User> getGroupUsers(string gid);
};
建议将头文件引入于HmiApp.h
文件中
#include "op/IAuthMgr.h"
string grpId = AuthMgr::addGroup("admin")
/**
* @brief 获取用户登录
* @param title 标题
* @return
*/
virtual IDialogPtr getLoginBox(const string& title = "登录") = 0;
/**
* @brief 获取用户注销提示框
* @param title 标题
* @return
*/
virtual IDialogPtr getLogoutBox(const string& title="注销", const string& tip="") = 0;
pm->getLoginBox("用户登录")->show();
pm->getLogoutBox("用户注销")->show();
注意