2013-08-12 5 views
1

코드 서명자 (HMVC)를 사용하여 컨트롤러의 모든 기능에 대한 권한을 확인할 수있는 권한 기반 시스템을 개발 중입니다. 해당 함수를 실행하기 전에 권한을 확인하기 위해 특정 함수를 실행할 수 있기를 원합니다. 그게 어떻게 가능해?codeigniter에서 다른 함수보다 먼저 함수를 실행하는 가장 좋은 방법은 무엇입니까?

도움 또는 생각 어떤 종류의
+0

: 당신은 또한 여기 인증 라이브러리 내부에 다른 기능을 작성하고 기능의 정상에 호출 할 수 있습니다 사용자 정의 역할에 대한

public function __construct() { parent::__construct(); $this->m_auth->notLogin(); $this->load->library('form_validation'); $this->load->library('ajax_pagination'); $this->load->library('dateconverter'); $this->load->helper('check'); $this->load->model('immovable/immovable_model'); $this->lang->load('home', $this->m_auth->get_language()); $this->lang->load('personal', $this->m_auth->get_language()); $this->lang->load('global', $this->m_auth->get_language()); //this is the function which checks for roles of users $this->m_auth->check_asset_user(); } 

코드의 예입니다 [hook] (http://ellislab.com/codeigniter/user-guide/general/hooks.html)을 사용하여 시도 했습니까? – naththedeveloper

+0

중첩 함수 호출에서 후크가 실행되지 않습니다 ... –

+0

다른 일을하기 전에 함수 자체 내에서 hasPermission ("사용 권한 이름")과 같은 도우미 함수를 사용하고 있습니다. 당신의 경우 가능하지 않습니까? – Nishanthan

답변

0

을 감사

당신은 post_controller_constructor 훅을 시도 할 수 있습니다.

+0

이것은 도움이되지 않습니다. 중첩 된 함수를 호출하면 마지막 함수의 후크 만 실행됩니다. 최종 렌더링 된 페이지가 브라우저로 전송 된 후 호출되며, 최종 데이터가 브라우저로 전송 된 후 시스템 실행이 끝날 때 호출됩니다 .' –

0

인증 라이브러리 내에 사용자 역할과 권한을 확인하는 함수를 만들고 및 생성자 내의 각 함수의 컨트롤러에서 함수를 호출하십시오. 나는 이런 식으로 작업을 수행합니다

public function get_data() 
{ 
    if($this->m_auth->check_user()==2) 
    { 
     //do what you want 
    } 
    else 
    { 
     $this->load->view('unauthorized'); 
    } 
} 
관련 문제