我有一个“make-do”页面身份验证器,它定义了允许哪些用户组访问该页面,但是,如果该页面是他的用户编辑页面但不触及任何其他页面,我的一些脚本允许用户通过用户编辑页面。为此,我禁用了对用户组的访问,除非您是管理员或您当前所在的用户编辑页面是您自己的。
我试图创建一个函数来执行此操作,但是 allowOnly 用户组函数会在不检查页面其他位置是否定义其他函数的情况下执行惩罚。
这是“make-do”功能和我希望它们如何工作的示例:
public function allowOnly($officer, $administrator, $superuser)
{
$authority = 0;
if ($officer == true && $this->session->isOfficer()) {
$authority++;
}
elseif ($administrator == true & $this->session->isAdmin()) {
$authority++;
}
elseif ($superuser == true & $this->session->isSuperuser()) {
$authority++;
}
if ($authority != 0) {
return true;
}
else {
header("Location: ../incorrectRights.php");
exit;
}
}
function allowCurrentUser()
{
global $authority;
$authority++;
}
如果用户不是任何允许的用户组,这会更改用户位置,但由于该代码在“allowCurrentUser”之前执行,因此它会在函数有机会允许用户通过之前更改位置。
我希望它像这样工作:
<?php
include("functions.php");
$functions->allowOnly(false, false, true);
if($session->username == $allowedUserName) {
$functions->allowCurrentUser();
}
如果我的描述性不够,或者我的代码效率低下,我很抱歉,哎呀,即使我错过了一个为我做这件事的内置 php 函数!