Eclipse插件项目添加用户权限功能,不同的用户有不同的管理权限,例如:用户分为管理员和普通用户,管理员具有配置系统和管理用户的功能,而普通用户则没有这些功能。
首先,做出用户登录的界面,用户的类为User。
Class User{
String name;
String password;
int authority;
}
在User类中建立静态变量及相应的get方法用以保存用户在登陆界面填入的信息。
private static User INSTANCE = new User();
public static User getInstance(){
return INSTANCE;
}
由此可以通过User.getInstance()在任何地方都可以提取用户的信息。
登陆界面为LoginDialog()
建立一个名为Login的类,包含方法isLogin(),代码如下:
public boolean isLogin() {
final LoginDialog loginDialog = new LoginDialog(Display.getCurrent().getActiveShell());
loop = false;
while (!loop) {
if (loginDialog.open() != Window.OK)
return false;
String username = User.getInstance().getrName();
String password = User.getInstance().getPassword();
loop = isValidate(username, password);//判断用户名和密码是否正确
if(!loop)
{
MessageDialog.openError(new Shell(), "错误", "用户名或密码错误!");
}
}
return loop;
}
通过while循环获取正确的用户名密码对。
在Application.java的start()方法中添加如下语句
Login login=new Login();
if(!login.isLogin()){
return IApplication.EXIT_OK;
}
使得登陆界面在程序界面显示之前显示。
然后,通过用户的登录信息判断用户的级别,若是普通用户则除去相应的配置菜单和工具栏的配置图标,这些都是在ApplicationWorkbenchWindowAdvisor.java的postWindowOpen()方法中实现,具体代码如下:
int authority = Operator.getInstance().getOperatorAuthority();
if (authority != 1) {
IWorkbenchWindow window = Workbench.getInstance().getActiveWorkbenchWindow();
if (window instanceof WorkbenchWindow) {
MenuManager menuManager = ((WorkbenchWindow) window).getMenuManager();//获取整个目录
ICoolBarManager coolBarManager = null;
if (((WorkbenchWindow) window).getCoolBarVisible()) {
coolBarManager = ((WorkbenchWindow) window).getCoolBarManager2();//获取整个工具栏
}
Menu menu = menuManager.getMenu();
String itemMenu = "menuId";//menuId为你需要除去的menu的id
IContributionItem[] itemsMenu = (IContributionItem[]) menuManager.getItems();
MenuManager menu4 = (MenuManager) itemsMenu[4];
IContributionItem itemDisplayViews = menu4.find(itemMenu);//找到需要除去的menu
itemDisplayViews.dispose();//去除
String itemCoolBar = "coolBarId";//menuId为你需要除去的工具栏的id
IContributionItem itemC = menuManager.find(itemCoolBar );
if (itemC != null) {
menuManager.remove(itemC);
itemC.dispose();
menuManager.update();//更新整个目录
}
IContributionItem[] itemsCoolBar = coolBarManager.getItems();
itemsCoolBar[1].dispose();
coolBarManager.update(true);
}
}
本文介绍如何在Eclipse插件项目中添加用户权限功能,详细讲解了用户登录验证、根据权限动态隐藏菜单和工具栏的操作步骤,旨在实现不同用户角色的功能限制。
3230

被折叠的 条评论
为什么被折叠?



