지금까지 Yii 1.1.14를 사용하여 웹 앱을 개발했지만 지금은 업그레이드해야 할 때입니다.의문의 여지가 Yii2 RBAC
내가 일하는 회사는 자체 액세스 제어 시스템을 개발했으며, 정말 맘에 든 것을 보았을 때까지는 정말 좋았습니다 ... 데이터베이스의 8 개 테이블 조합 (사용자 테이블 계산 안 함) , 외래 키들이 많다. 컨트롤러 사용자
- 1 표 기본적으로 그냥 2에 연결하거나 3 한 번에 그 테이블.
잘 작동하지만 내 관점에서는 모든 테이블을 유지 관리하는 데 많은 시간이 소요되며 특정 시점에 응용 프로그램이 온라인 상태가 될 때 특정 양의 사용자에게 부딪혔을 때 실제로 느려질 수 있습니다 . 특히 이들 테이블 중 2 개가 사용자의 테이블 기본 키를 외래 키로 가지고 있기 때문에 특히 그렇습니다.
그래서 Yii 2에서 개발을 시작할 때 RBAC를 사용하기 시작 했으므로 온라인 튜토리얼을 찾기 시작했습니다. 작성자 역할을 가진 여러 코드 버전 , 게시물 작성 또는 업데이트 권한이 필요합니다.
나는 Youtube에서 5 개의 동영상 조합을 발견했지만 Yii 1 RBAC에 관한 내용입니다. 내가 RBAC의 기능을 대부분 이해할 수 있었기 때문에 도움이되었지만 아래에 열거 한 에 대한 의문점이 아직 남아 있습니다. 그리고이 액세스 제어 시스템에서는 DBManager 클래스를 사용하고 있습니다.
내 의심
3 개 테이블을 가지고하는 데 사용 YII 1의 RBAC :
auth_assignment
,auth_item
및auth_item_child
. 이제 Yii 2 RBAC에서auth_rule
이라는 새 테이블이 나타나는데 그 테이블에서 수행중인 작업이 무엇인지, 사용 방법 또는 채우는 방법을 아직 이해할 수 없습니다.컨트롤러의 동작 방식을 사용하고 사용자의 역할에 따라 일부 동작에 대한 액세스를 할당하여 일부 동작에 대한 사용자의 액세스를 제한 할 수 있지만이 경우에는 내 질문을 2 :
2.1. 첫 번째 : 비헤이비어 메서드에서 설정하여 작업에 대한 액세스를 제한 할 수 있다면
auth_item
테이블에 사용 권한을 저장하는 용도는 무엇입니까?2.2. Second : 권한에 따라 액세스를 제어하기로 결정한 경우 정확히 어떻게 할 것인가? 모든 기능에 다음과 같은 유형의 코드를 작성했기 때문에 RBAC를 사용해야한다고 생각하지는 않습니다. 지루한. 다른 방법이 있어야합니다.때문에 사용자가 로그인 할 때, 복잡한 쿼리가 세션 변수로 저장됩니다 배열을 반환 끝날 것 등이 될 것이다 실행 지금 우리가 사용하는 액세스 제어 시스템의
public function actionView($id) { if(Yii::$app->user->can('view-users')){ return $this->render('view', [ 'model' => $this->findModel($id), ]); }else{ #Redirect to a custom made action that will show a view #with a custom error message $this->redirect(['//site/notauthorized']); } }
사용자가 액세스 할 수있는 컨트롤러가 속하는 메뉴 범주만큼의 드롭 다운 목록이있는 메뉴를 만드는 데 사용됩니다. RBAC로 어떻게이 작업을 수행 할 수 있습니까?
일부 리소스에 대한 링크가 아닌 답변의 관련 부분을 작성해야합니다. – GMchris