2013-02-18 73 views
3

我的應用程序對不同的角色(管理員或標準用戶)有不同的意見。我不知道如何用extjs4 MVC實現它。 extjs4文檔的例子認爲,應用程序只有一個角色,像標準用戶一樣,所以他們創建一個app.js文件來管理應用程序,但是如果應用程序有很多角色,我不知道如何爲不同的用戶實現不同的視圖。
有一件事是我在應用程序中有兩個app.js文件,並且在服務器中獲取用戶角色後,我加載適當的app.js文件以使用適當的視圖,控制器,模型,存儲等。
這是事實嗎?在extjs4中基於角色的視圖mvc

回答

2

這是來了很多次一個相當標準的問題,答案總是一樣的:

  • 訪問控制所屬的服務器沒有用戶可以操縱它
  • 根本就不提供一個視圖/一個模型/一個控制器給用戶,他無法訪問

考慮到這一點,如果你有一個應用程序或十個並不重要。

而且由於訪問控制不屬於前端,所以在ExtJS中沒有實現。

更新 - >隱藏UI元素

一個蓄勢待發的方法是使用Ext.direct。這爲應用程序提供了一個API,可以根據當前用戶的自定義訪問進行修改,然後可以通過前端進行檢查。

Howto:如何

創建基於用戶會話的API,並查看各客戶方像

if(Booking) { 
    if (Booking.Create) { 
     // has access 
    } 
} 

或一行

{ 
    xtype: 'button', 
    hidden: !(Booking && Booking.Create) 
} 

這只是一個簡單的例子多麼容易這可以做到!

更新 這​​幫助運

+0

我從你的答案注意到,我應該有兩個app.js文件我在服務器端應用程序。這是真的嗎? – taher 2013-02-18 11:27:32

+0

@taher如果您只有兩個角色,那麼這將是一個選項。但是如果你有更多的角色,你可能需要重新考慮你的設計。含義:您可能無法使用預編譯的庫。您的服務器需要將特定的庫僅發放給具有適當訪問權限的用戶,或者在用戶登錄時將它們合併,或者提供用於隱藏用戶無權訪問的部件的UI元素的完全限制。 – sra 2013-02-18 12:05:36

+0

謝謝,對於應用程序有更多角色的情況下,你可以舉例說明隱藏用戶無法訪問的部分的UI元素嗎? – taher 2013-02-18 12:29:37