显示两个已定义用户组的内容

时间:2015-11-04 15:20:02

标签: php session usergroups

我有两个用户组 - 管理员(A)和主持人(M) - 以及导航菜单。某些链接仅对Admin可见,而其他链接对两者都可见。这是我目前的代码:

@functions{
    public string TokenHeaderValue()
    {
        string cookieToken, formToken;
        AntiForgery.GetTokens(null, out cookieToken, out formToken);
        return cookieToken + ":" + formToken;
    }
}

目前,菜单仅针对版主显示,因为第一行:

 $.ajax({
    url: url,
    type: "POST",
    async: false,
    data: JSON.stringify(data),
    contentType: 'application/json; charset=utf-8',
    headers: {
        'RequestVerificationToken': '@TokenHeaderValue()'
         },
    error: function (response) {
        alert(response.responseText);
    },
    success: function (response) {
        result = response;
    }
});

所以我尝试将Admin组包括在内:

<? if($_SESSION["LogedInAdminId"] && $_SESSION['AdminStatus']=="M") { ?>
    <ul>
        <li>...</li>
        <li>...</li>

        <? if($_SESSION["LogedInAdminId"] && $_SESSION['AdminStatus']=="A") { ?>
            <li>...</li>
            <li>...</li>
        <? { ?>

    </ul>
<? } ?>

但是,这会破坏代码并显示每个人的菜单 - 管理员,Mod,来宾等。包含两个用户组的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

首先,确保使用会话为所有页面启动session

现在这种语法|| "A"并不正确。您需要添加新条件。

这是您需要做的事情,并将第二个条件包括在内:

if( $_SESSION["LogedInAdminId"] 
    && ($_SESSION['AdminStatus']=="M" || $_SESSION['AdminStatus']=="A")
  )

答案 1 :(得分:1)

你必须将这样的用户组合起来检查AdminStatus M 还是(||) A

<? if($_SESSION["LogedInAdminId"] && ($_SESSION['AdminStatus']=="M" || $_SESSION['AdminStatus']=="A")) { ?>