4

新しい推奨アプリケーション構造を使用して、ExtJS4でWebアプリケーションを開発しています。したがって、認証と権利のシステムを実装する必要があります。これまでのアイデア:

  1. サーバーは、ユーザーの役割と権限を確保する責任があります。
  2. ExtJSフロントエンドは、権限と役割に応じて変更する必要があります
  3. カードレイアウトを使用しています。最初のタブはログイン画面で、2番目のタブはアプリケーションです
  4. 私のコントローラーでは、ユーザーがログインしているかどうかを確認します。ユーザーが有効なIDを持っている場合は、タブ2に切り替えます。そうでない場合は、タブ1に戻されます。

今の私の問題は、パート2とパート4について確信が持てないということです。これら2つをどのように実装しますか?

4

2 に答える 2

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、1つのレコードのみをロードします)。

  • これにより、正しい方向に進むことができます。最も基本的なコンポーネントのみを使用して初期ビューを作成してから、ユーザーの構成に基づいてカスタムコンポーネントを追加してください。

于 2011-10-03T17:56:35.317 に答える
1

ユーザーIDに応じてサーバーから一意のユーザー「構成」ファイルを送信できるため、すべてのユーザーが独自の構成を希望どおりに設定できます。また、変更後にStateManagerを使用してユーザー構成を保存することもできます。このように、フロントエンドは権限と役割に応じて変更されます。パート4については、カードレイアウトを使用することにした場合、問題は発生しません。

setActiveTab( String/Number/Ext.Component card )

編集:

getState();を使用できます。Ext.AbstractComponentから「状態」を取得して保存するため、次のロード時にこの状態が初期化されます。これはCookieまたはローカルストレージに依存しないため、期限切れにはなりません。ビューのカスタマイズが終了した後、ユーザーに状態を保存する機会を与えることができます。

于 2011-10-03T12:51:25.600 に答える