3

ACL, CodeIgniter, 역할 기반 등의 모든 조합을 검색하고 컨트롤러 및 메소드에 대한 액세스를 제어하는 ​​데 유용한 정보를 많이 찾았습니다. 필드 레벨 제어.CodeIgniter의 필드 수준 ACL

나는 (phpgacl 및 zend acl) 필드 레벨 권한에 대한 필자의 요구에 맞게 쉽게 수정할 수 있는지 확인하기 위해 한 쌍을 다운로드했다. 사용자의 로그인을 기반으로 필드 수준 제한을 허용하는 라이브러리 및/또는 가장 좋은 방법은 있나요 : 나는 시간을 보내고 전에 그래서

질문 ... 처음부터 하나를 만드는 방법? 특히

나는 사용자의 AD 그룹 구성원에 따라 찾고 있어요는 양식 필드 중 하나가 :

  • 가 나타난다하지만 읽기 전용
  • 가 편집 할 수 나타나지

지금까지 AD 그룹 구성원 자격은 세션 변수에서 이미 사용할 수 있으므로 필요하지 않습니다. 이 점을 ACL과 역할 기반으로 태그를 달았습니다. 차이점에 대한 다른 토론을 시작하는 것이 아니라 패키지가 내 필요를 충족시키는 경우 어느쪽으로 든 기꺼이 갈 수 있기 때문입니다.

+2

나는 몇 표를 남겨두고 있습니다. "건설적이지 않은"표와 왜 내가 어떻게 수정할 수 있는지 알려 주시기 바랍니다. 나는 "물어 보는 법"을 확인하고 숙제를했다. 구체적으로하려고 시도했다. 나는 다른 사람들에게 재발 할 것이라고 생각한다. (나는 이것을 찾을 수있는 유일한 사람이 될 수 없다. 토론, 논쟁, 여론 조사 또는 토론 확대 "를 선점했다. 이 질문을 더 잘하기 위해 내가 할 수있는 일을 알려주십시오. – AlexC

+1

필드 레벨 ACL을 제공하는 공개적으로 사용 가능한 CI 라이브러리를 아직 보지 못했습니다. 필요한 것을 얻기 위해 내장 양식 유효성 검증 라이브러리의 ACL과 확장자의 조합을 사용해야 할 수도 있습니다. – Brendan

+0

@Brendan 확인해 주셔서 감사합니다. 아무도 다른 것이 없다면 나는 그 다음으로 향하고있다.지식의 몸에서 아무것도 보지 못했습니다. 내가 뭔가를 만드는 것을 끝내면 나는 그것을 사용하기 위해 올릴 것이다. – AlexC

답변

0

당신의 질문 중 하나에 대답하고 싶습니다. 현재 "플래그 기반"ACL을 사용하고 있습니다. 내 사용자 테이블에는 Activated, Staffmember, Admin이라는 3 개의 필드가 있습니다. 나는 2 가지 다른 모델에서 3 개의 쿼리를 실행하여 주어진 로그인 자격 증명이 맞는지 확인합니다.

WHERE staffmember = 1 
WHERE Admin = 1 
WHERE activated = 1 

레코드가 반환되면 반환 값으로 변환합니다.

이것은 내 다른 문은 무엇을 볼 수있는 사람을 결정하는 경우 :

function index() 
{ 
    $this->load->model('staff_model'); // loads model that queries if username is associated with a admin or staff account 
    if($staffmember = $this->staff_model->staffmember()) //Checks for staff value == 1 
    { 
     if($is_admin = $this->staff_model->is_admin()) // Checks for admin value == 1 
     { 
      redirect('admin_controller/index'); // redirects to what the admin will see (the admin pages, add users, delete users, deactivate users, this way I set up a sorta CMS type system 
     }else{ // If not admin == 1 meaning it can be a staff member == 1 
      $data['main_content'] = 'staff_homepage_view'; //sets up template for staff member 
      $this->load->view('includes/template', $data); // this will then load the view for staff member 
     } 
    }else{ // If not staff == 1 // then if it is not staff member it will load the view for a no permission account in this case : student 
     $data1['main_content'] = 'student_homepage_view'; 
     $this->load->view('includes/template', $data1); 
     } 
    } 

당신이 모델을 알려 주시기 볼 필요합니다. 그러나이 방법으로 나는 사용자가 데이터베이스의 계정 플래그를 통해 볼 수있는 것을 설정할 수있었습니다.

이 방법으로도 관리자는 반드시 직원이어야하며 활성화 된 권한없는 계정은 staffmember 또는 admin이 될 수 없습니다.

그래서 다음 편집 = 1 다음 사용자가 필요한 사항에 대한 전체 액세스 권한을 완료 할 경우 당신은 다음 사용자 테이블 다음 지정할 수 있습니다

컨트롤러에서 편집

라는 필드에서 설정 할 수있는 일 , 그 밖에 읽을 수 있습니다. 이제 편집해야 할 내용을 알지 못해서 내가 제공 할 수있는 정보가 제한적입니다.