2011-10-03 154 views
4

我正在使用新推薦的應用程序結構在Ext JS 4上開發Web應用程序。因此我需要實施一個認證系統&。到目前爲止的想法:ExtJS 4應用程序登錄和身份驗證和權利

  1. 服務器負責確保用戶的角色和權利。
  2. ExtJS的前端有根據權限和角色
  3. 我用卡的佈局改變。第一個標籤是登錄屏幕,第二應用
  4. 在我的控制器我檢查,如果用戶登錄,如果他有一個有效的身份我如果沒有切換到標籤2.他拋出回選項卡1.

我現在的問題是,我不確定部件2和第4部分?你將如何實現這兩個?

回答

3
  • 一旦用戶通過身份驗證,將配置選項從服務器上傳到商店。例如:Ext.StoreManager.get('ConfigOptionStore').loadData(/* config data returned from server */);
  • 使用beforeRender事件將組件添加到您的當前視圖(控制器做到這一點),就像這樣:

    init: function() { 
        this.control({ 
         'myPanel': { 
          beforerender: function(cmp, eOpts){ 
          //place the store in a var for easy access 
          var myConfigStore = Ext.StoreManager.get('ActiveUserStore').getAt(0); 
    
          //from here you can use add() to add stuff like so: 
          if (myConfigStore.get('hasMyButton')) { 
           cmp.add({ 
            xtype: 'button', 
            text: 'My Button', 
            action: 'doSomething' 
           }); 
          } 
          //etc... 
         } 
        }); 
    } 
    
  • 確保在任何給定的時間,在更新第一用當前的配置選項記錄商店(當你登錄loadData時,只加載一條記錄)。

  • 這應該讓你在正確的方向開始。只要確保使用唯一最基本的組件創建初始視圖,然後根據用戶的配置添加自定義組件。

+0

Thx,好主意。我只是在創建視口之前在應用程序啓動時將json加載到var中。考慮到mvc結構,我在構造上的tbar中構建按鈕,但隱藏選項hidden:true; – Manuel

1

你可以從服務器根據用戶ID發送唯一的用戶「配置」的文件,所以每一個用戶都有自己的配置設置,他希望的方式,也可以使用StateManager來保存用戶配置後發生了改變。這樣前端會根據權限和角色而改變。對於部分4.我沒有看到任何問題,如果你決定去與卡片佈局...

setActiveTab(String/Number/Ext.Component card) 

編輯:

您可以使用getState();從Ext.AbstractComponent以檢索了「狀態「,並保存,所以在下一次加載時,此狀態將被初始化。這不取決於Cookie或本地存儲,因此它不會過期。在完成自定義視圖後,您可以讓用戶有機會保存狀態。

+0

你有沒有對StateManager的教程或例子?我對extjs非常陌生,並且沒有從文檔中獲取,如何使用它。 你會如何插入登錄/身份驗證管理器?因爲用戶可能會離開他的電腦,並且當我必須將他扔回登錄屏幕時會話過期。否則,他會嘗試保存一些東西,而不會被允許...... – Manuel

+0

我找到了一個例子,但我想狀態管理者可能不適合我。根據我對狀態管理員的理解,它根據用戶的操作來保護我的應用程序的狀態。那不完全是我需要的。我需要自定義界面。意即。例如。如果用戶被允許編輯,向他顯示網格內的編輯按鈕,顯示項目並允許他加載並打開編輯屏幕。 – Manuel