隐藏基于用户角色的菜单选项。不是WP

时间:2015-03-07 18:10:01

标签: php

我已经搜索了这个,但如果网站是wordpress,我能找到的就是答案。

我有2个用户角色。管理员和SuperAdmin。在我的数据库中,我将它们作为角色1& 2.我想根据用户的角色隐藏菜单项。

LoginForm检查用户输入

$query = mysql_query("select * from members where password='$mypassword' AND username='$myusername' AND role='$role'", $connection);
  $rows = mysql_num_rows($query);
    if ($rows == 1) {
     $_SESSION['login_user'] = $myusername; // Initializing Session
     $token = md5(uniqid());
     $_SESSION['token'] = $token;
     $_SESSION['role'] = $role;
     $query = mysql_query("update token from members where username='$myusername' set token = '$token'", $connection);

以下是会员登录后的内容。

<?php
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true);
// User still logged
   $role = $row['role'];
   if ($_GET['role'] == '2') {
       $showdiv = 'super';
    }
    else if ($_GET['role'] == '1') {
       $showdiv = 'admin';
    }
    echo "<script type=\"text/javascript\">document.getElementById('".$showdiv."').style.display = 'block';</script>";
?>

然后我有菜单所在的位置。 (只显示超级栏)

<div class="mainbar">
  <div id="super">
     <?php include("supernavbar.php"); ?>
    </div>
  <div id="admin">
     <?php include("navbar.php"); ?>
  </div>
</div> <!-- /.mainbar -->

我可能在这里找到了解决方案(感谢&#34;相关问题&#34;) Loading role-based navigation upon login

但我的问题是,我会得到&#34;角色&#34;从登录或登录后的第二页上?

1 个答案:

答案 0 :(得分:0)

问这个问题已经三年了,但是我仍然会尽力回答。

您需要具有角色表,然后具有权限表。另一个表为Role_Permissions,您可以在其中定义哪个角色具有哪些权限。然后,当用户登录时,您可以根据其拥有的权限来检查其角色,并显示适当的菜单项。

例如您的角色表可能如下所示:

Admin
Manager
Sales

然后拥有权限:

Create_Order
Read_Order
Update_Order
Delete_Order

等...

然后进入Role_permissions:

Admin Create_Order 1
Manager Create_Order 1
Sales Create_Order 0

您明白了。