2011-10-03 3 views
4

새로운 권장 응용 프로그램 구조를 사용하여 Ext JS 4에서 웹 응용 프로그램을 개발하고 있습니다. 따라서 인증 시스템 & 권한 시스템을 구현해야합니다. 지금까지의 생각 :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, 좋은 아이디어.뷰포트를 만들기 전에 응용 프로그램 실행시 var에 json을로드하기 만하면됩니다. mvc 구조를 고려해 보았을 때 버튼을 건설시 tbar에 작성했지만 숨겨진 옵션을 사용하여 버튼을 숨 깁니다. – Manuel

1

사용자 ID에 따라 서버에서 고유 한 "config"파일을 보낼 수 있으므로 모든 사용자가 원하는대로 설정을 구성 할 수 있습니다. 또한 변경된 이후의 사용자 구성을 저장하기 위해 StateManager를 사용할 수도 있습니다. 이 방법은 권한과 역할에 따라 프론트 엔드가 변경됩니다. 난 당신이 카드 레이아웃 갈 것을 결정하는 경우에, 어떤 문제를 볼 해달라고 부분 (4) ... 들어

setActiveTab(String/Number/Ext.Component card) 

편집 :

당신은 가져 오지하기 위해 Ext.AbstractComponent에서 getState();를 사용할 수 있습니다 " 상태 "를 저장하고 저장합니다. 따라서 다음 상태에서이 상태가 초기화됩니다. 이는 쿠키 또는 로컬 저장소에 의존하지 않으므로 만료되지 않습니다. 사용자 정의보기를 완료 한 후 사용자에게 상태를 저장할 수있는 기회를 제공 할 수 있습니다.

+0

StateManager에 대한 예제가 있습니까? 나는 extjs에 익숙하지 않고, docs에서 그것을 사용하는 방법을 모른다. 로그인/인증 관리자를 어떻게 플러그인 하시겠습니까? 사용자가 자신의 PC를 떠나기 때문에 세션을 로그인 화면으로 되돌려 보내야 만 세션이 만료됩니다. 그렇지 않으면 그는 무언가를 저장하려고 시도 할 것이고 .... 허용되지 않을 것이다. – Manuel

+0

나는 예를 발견했다. 그러나 나는 statemanager가 나를 위해 바른 물건이 아닐지도 모른다라고 생각한다. statemanager를 이해함에 따라 사용자의 작업 상태에 따라 응용 프로그램의 상태가 안전합니다. 그게 정확히 내가 필요로하는 것은 아닙니다. 인터페이스를 사용자 정의해야합니다. 이것은 의미합니다. 예 : 사용자가 편집 할 수있는 경우 그리드 내부에 항목을 표시하는 편집 버튼을 표시하고 편집 화면을로드하고 열 수 있습니다. – Manuel

관련 문제