博客 / 詳情

返回

Foxnic-Web 代碼生成 (10) —— 生成菜單與授權

Foxnic-Web 代碼生成 (10) —— 生成菜單與授權

概述

  模塊代碼生成之後,我們需要為配置菜單。配置菜單是一系列的過程,包括創建資源、創建菜單並關聯資源,並將菜單授權給指定的角色。

  本文中的示例代碼均可在 https://gitee.com/LeeFJ/foxni... 項目中找到,本文對照 webfull 項目講解。

完整示例

  Foxnic-Web 項目提供代碼生成的完整示例,請大家參考:

https://gitee.com/LeeFJ/foxni...

生成菜單

  生成菜單包含若干步驟,涉及到資源、菜單、角色等系統表。示例項目 webfull 中的 generator 模塊下的 MenuGenerator 類已經實現菜單生成與授權的全過程。以下是菜單生成時使用的部分代碼:

/**
* 超級管理員角色ID
* */
public static final String SUPER_ADMIN_ROLE_ID="110352963290923110";

public static void main(String[] args) {
    MenuGenerator mg=null;
    // 創建一個 MenuGenerator,並傳入必要的參數
    mg=new MenuGenerator(WebFullTables.WEBFULL_EXAMPLE_REIMBURSEMENT.$TABLE, ReimbursementServiceProxy.class, ReimbursementPageController.class);
    // 生成菜單
    mg.generate("643084271635922944");
}

  上面的代碼中,我們可以看到,MenuGenerator 使用一個常量指定了默認授權的角色。MenuGenerator 類在生成菜單時需要傳入數據表元數據對象、Proxy 類、PageController 類,以提取資源路徑。

  生成菜單時調用 generate 方法,該方法需要傳入一個上級菜單ID作為參數。由於 generate 方法會操作多表,改方法在內部使用了事務管控,不會因為某個步驟失敗而產生垃圾數據。

  generate 方法執行後會在控制枱輸出 batchId , 這個 batchId 也被存入菜單表中,batchId 可以用於以生成菜單的回滾。

回滾菜單

  生成菜單時也有可能因為一些誤操作而生成了錯誤的菜單,這時我們就需要撤銷已經生成的菜單、資源以及角色授權。我們需要找到 batchId,然後調用 MenuGenerator.removeByBatchId() 。如下代碼所示:

public static void main(String[] args) {
    MenuGenerator mg=null;
    mg=new MenuGenerator(WebFullTables.WEBFULL_EXAMPLE_REIMBURSEMENT.$TABLE, ReimbursementServiceProxy.class, ReimbursementPageController.class);
    //mg.generate("643084271635922944");
    mg.removeByBatchId("608188281577799680");
}

小結

  本節主介紹瞭如何生成模塊菜單,以及如果模塊菜單生成錯誤,如何通過 batchId 回滾撤銷已經生成的菜單。MenuGenerator 並沒有要求提供更多細節的菜單屬性,這些配置請到系統管理的菜單管理維護。

相關項目

  https://gitee.com/LeeFJ/foxnic

  https://gitee.com/LeeFJ/foxni...

  https://gitee.com/lank/eam

  https://gitee.com/LeeFJ/foxni...

官方文檔

  http://foxnicweb.com/docs/doc...

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.