php - Codeigniter customized user roles open specific pages only -


how define user privileges in ci opening specific pages? thinking calling database value every time open page , see if has right open particular page. if has no right show up, directly logged out. there many pages do. create function , check everytime open page. easiest way?

thanks.

you're on right track. query database on every page load, that's fine, , ideal if values change. alternatively, save privileges data session, , query session on page load (similar how check if user logged in).

but there many pages do

you can extend default ci_controller , add own code runs on every page. example, create new file called my_controller.php in application/core/ directory, , put code privileges check in __construct() function, runs automatically on every page load.

application/core/my_controller.php

class my_controller extends ci_controller {     function __construct()     {         parent::__construct();          // check privileges here. like..          $this->load->helper('url');         $this->load->model('privileges_model');          $current_uri = uri_string();              // if url http://some-site.com/blog/comments/123             // return "/blog/comments/123"          $user_id = $this->session->userdata('user_id');          if($this->privileges_model->check($user_id, $current_uri) == false)         {             // user not have correct permissions.             // log them out, redirect them somewhere else, etc etc.         }     } } 

then in controllers, instead of extending ci_controller, can extend custom my_controller, inheriting methods every page.

application/controllers/secret.php

class secret extends my_controller {     function __construct()     {         parent::__construct();     }      function index()      {         // secret page code here..     } } 

this article phil sturgeon goes more detail: http://philsturgeon.co.uk/blog/2010/02/codeigniter-base-classes-keeping-it-dry


Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

ios - Change Storyboard View using Seague -