Welcome Guest, Not a member yet? Register   Sign In
Best Practice for making certain links on a page visible depending on the user's access.
#1

[eluser]toymachiner62[/eluser]
I have an admin area and I want to have certain links visible depending on the user's access. What is the best way to do this?

Right now all I have is this code for the nav links

Code:
<nav>
    
        <ol>
            <li>&lt;?php echo anchor('member/publicNews', 'Public News'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/memberNews', 'Member News'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/publicCalendar', 'Public Calendar'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/memberCalendar', 'Member Calendar'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/photoAlbums', 'Photos'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/files', 'Files'); ?&gt;</li>
        </ol>
    
    </nav>

Let's say I only want the "Files" link to be visible to people with super user access. I was thinking of when a user logs in, set an access level in a session parameter and then do something like this.
Code:
<ol>
            <li>&lt;?php echo anchor('member/publicNews', 'Public News'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/memberNews', 'Member News'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/publicCalendar', 'Public Calendar'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/memberCalendar', 'Member Calendar'); ?&gt;</li>
            <li>&lt;?php echo anchor('member/photoAlbums', 'Photos'); ?&gt;</li>
            <li>&lt;?php if($this->session->userdata('accessLevel') == 1) {echo anchor('member/files', 'Files'); }?&gt;</li>
        </ol>

Is that the best way to do that or is there a better way?
#2

[eluser]brucebat[/eluser]
I did it this way,

I had an access level value in a database for each user.

Then when a user logged in their access level was stored in a session.

Heres what I have in my view to give you an idea:

Code:
&lt;?php
                //alters the nav bar depending on access level
                
                
                //access level not granted guest user
                if ( $this->session->userdata('access_level') == FALSE)
                {
                    echo '<li>', anchor('site/index', 'Home'), '</li>';
                    echo '<li>', anchor('site/about', 'About'), '</li>';
                    echo '<li>', anchor('site/blog', 'Blog'), '</li>';
                    echo '<li>', anchor('site/login', 'Login'), '</li>';
                    echo '<li>', anchor('register/register_user', 'Register'), '</li>';
                }

                //access level one normal user
                else if ( $this->session->userdata('access_level') == 1)
                {
                    echo '<li>', anchor('user/index', 'User Home'), '</li>';
                    echo '<li>', anchor('submit/displayform', 'Submit'), '</li>';
                    echo '<li>', anchor('user/blog', 'Blog'), '</li>';
                    echo '<li>', anchor('login/logout', 'Logout'), '</li>';
                }
                    
                    
                //admin access level
                else if ( $this->session->userdata('access_level') == 3)
                {
                }
                    
                    
                    
            ?&gt;

Hope that helps!




Theme © iAndrew 2016 - Forum software by © MyBB