2012-03-02 2 views
1

Codeigniter에서 사용자의 액세스 수준에 따라 다른 옵션을 표시하는 메뉴를 만드는 방법을 찾으려고합니다. 즉, 관리자 및 편집자 또는 일반 사용자 인 경우. 옵션 중 일부는 중복됩니다.Codeigniter 메뉴 액세스 수준에 기반

if 문을 뷰에 추가하는 것을 고려해 보았습니다. 그러나 이것은 매우 좋은 MVC가 아닙니다. 또한 사용자 액세스 수준에 따라 메뉴 옵션을 설정하는 컨트롤러 내에 다차원 배열을 만드는 것을 고려했습니다.

정말 아이디어와 의견에 감사드립니다.

답변

0

은 사용자 계정의 각 등의 역할 세트, 즉, 대시 보드, 판매, 지불, 제품, 제품 추가/편집, 제품 삭제, 보고서,해야한다 (당신은 이온 인증의 그룹을 사용할 수 있습니다 역할). 그런 다음 메뉴를 표시하는보기를 작성하고 기록 된 사용자 역할을 해당보기에 전달합니다. 그런 다음 모든 역할을 수행하고 사용자 역할과 비교합니다. 사용자가 특정 페이지를 볼 수있는 역할을하는 경우 해당 페이지에 대한 링크를 메뉴에 추가합니다.

그게 전부예요 .--) 희망이 있습니다.

+1

그래서 사용자 역할을 기반으로 특정 메뉴를 표시하려면보기에 작은 if 문을 넣으시겠습니까? 나는 이것이 아마 내가 할 것이라고 생각하지만 그것이 올바른 MVC로 간주되었는지 확실하지 않았습니다. – chegwin

+0

예, 정확하게. 미안해. 설명하지 않았다면. 그리고 올바른 MVC에 대해 ... 그것이 최선의 방법인지는 모르겠지만 간단하고 충분히 효과적 일 것입니다 :) 그리고 곧 프로젝트에서 구현하려고합니다. 희망이 당신에게 도움이 될 것입니다. – Stan

0

나는 항상 이것이해야 할 것보다 더 열심히 만든다. 왜 각 사용자 수준에 대해 별도의보기 (부분)가 있습니까? 즉 :

<?php 
if ($this->user_model->isAdmin()) 
{ 
    $this->load->view('user_menu_admin'); 
} 
elseif ($this->user_model->isModerator()) 
{ 
    $this->load->view('user_menu_moderator'); 
} 
elseif ($this->user_model->isMember()) 
{ 
    $this->load->view('user_menu_member'); 
} 
else 
{ 
    $this->load->view('user_menu_guest'); 
} 
+1

원래이 방법을 사용하고 있었지만 둘 이상의 역할 유형에 필요한 많은 기능을 복제하고있는 것으로 나타났습니다. – chegwin

관련 문제