分權限管理的目的:規劃用戶的操作權限,使用戶只能操作他權力范圍內的內容。

1 新建菜單

  打開插件對應的.plugin文件——點擊界面下方的Menus選項卡——在打開的Menus from Plugin界面中,添加菜單。

1

  菜單詳細信息說明:

  ID:菜單ID;

  Parent Menu:父級菜單ID;

  Name:菜單名稱;

  URL:點擊菜單要跳轉到的頁面;

  Order:菜單序號,自動生成;

  Type:菜單類型:Backend表示系統后臺菜單;

  Frontend表示系統前臺菜單;

  Icon:菜單圖標;

  Description:菜單描述。

2

2 注冊菜單權限

  編寫權限類

        1)申明靜態常量,存儲對應菜單的ID(新建菜單時,ID項對應的值),并在構造方法中用super調用父類的顯式構造方法AbstractMenuPriv(String menuID, String memo)完成初始化。

public class LinkPriv extends AbstractMenuPriv {

public static final String MenuID = "LinkManage";

public LinkPriv() {

super(MenuID, null);

    }

}

  

  2)申明多個靜態常量,分別存儲各操作類型對應的權限項的ID(需將菜單ID作為權限項ID的前綴)。在構造方法中通過addItem(String itemID, String itemName)方法添加權限項。

public class LinkPriv extends AbstractMenuPriv {

public static final String MenuID = "LinkManage";

public static final String Add = MenuID + ".Add";

public static final String Edit = MenuID + ".Edit";

public static final String Delete = MenuID + ".Delete";

public LinkPriv() {

super(MenuID, null);

addItem(Add, "@{Common.Add}");

addItem(Edit, "@{Common.Edit}");

addItem(Delete, "@{Common.Delete}");

}

  }

  

  向菜單權限擴展服務MenuPrivService注冊權限項

3

  注冊后的菜單權限項會顯示在系統管理的菜單權限管理界面

4

  若菜單下沒有注冊相關的權限項,需要顯示上圖統計分析下類似的備注信息時,可以在調用父類的構造方法初始化時,通過第二個參數進行設置。

  代碼示例:

public class AnalysisPriv extends AbstractMenuPriv {

public static final String MenuID = "MainMenus.Analysis";

public AnalysisPriv() {

super(MenuID, "@{Platform.Menu.NoPriv}");

}

  }