Welcome Guest, Not a member yet? Register   Sign In
Auth control by uri request
#5

[eluser]FlashUK[/eluser]
Yup, it makes it really easy to change permissions in the database, plus its really fast since it only does 1 query.

I finished making the code, here it is:

Code:
function check()
    {
        $_pass = false;

        $_group = $this->obj->session->userdata('group_id');

        if ( $this->obj->session AND $this->obj->config->item('CL_Auth') AND !empty($_group) )
        {
            $_controller = '/'.$this->obj->uri->rsegment(1);
            $_action = $_controller.'/'.$this->obj->uri->rsegment(2);

            $query = $this->obj->group_uri->findURI(array($_controller, $_action), $_group);

            if ( $query->num_rows() )
            {
                $data = $query->row();

                $_pass = true;
                $this->_fullAccess = $data->is_admin;
            }
            else
            {
                $query = $this->obj->group_uri->globalAccess($_group);

                if ( $query->num_rows() )
                {
                    $data = $query->row();

                    $_pass = true;
                    $this->_fullAccess = $data->is_admin;
                }
            }
        }

        if ( $_pass == false )
        {
            $this->denyAccess($_group);
        }
    }

    function isAdmin()
    {
        return $this->_fullAccess;
    }

So all you do is call "$this->auth->check()" at the top of the controller if you want to protect it all, or sit it within an action.

Heres the model as well:
Code:
function findURI($_uri=array(), $_group_id)
    {
        $this->db->where_in('request_uri', $_uri);
        $this->db->where('group_id', $_group_id);

        return $this->db->get($this->_table);
    }
    
    function globalAccess($_group_id)
    {
        $this->db->where(array('group_id' => $_group_id, 'request_uri' => '/'));
        return $this->db->get($this->_table);
    }

Some example data too:

Code:
group_id | request_uri | is_admin

1   |   /            |   1
2   |   /home        |   1
3   |   /home/test   |   0


Messages In This Thread
Auth control by uri request - by El Forum - 03-13-2008, 03:51 AM
Auth control by uri request - by El Forum - 03-13-2008, 05:53 AM
Auth control by uri request - by El Forum - 03-13-2008, 07:55 AM
Auth control by uri request - by El Forum - 03-13-2008, 08:03 AM
Auth control by uri request - by El Forum - 03-13-2008, 08:28 AM
Auth control by uri request - by El Forum - 03-13-2008, 08:53 AM
Auth control by uri request - by El Forum - 03-13-2008, 09:20 AM
Auth control by uri request - by El Forum - 03-13-2008, 09:24 AM
Auth control by uri request - by El Forum - 03-13-2008, 09:33 AM
Auth control by uri request - by El Forum - 04-16-2008, 03:27 AM
Auth control by uri request - by El Forum - 07-12-2008, 08:26 AM
Auth control by uri request - by El Forum - 07-12-2008, 04:07 PM
Auth control by uri request - by El Forum - 07-13-2008, 01:37 AM



Theme © iAndrew 2016 - Forum software by © MyBB