そのページへのアクセスを許可するユーザーグループを定義する「make-do」ページオーセンティケーターがありますが、一部のスクリプトでは、そのページがユーザー編集ページである場合にユーザーがパスできるようにしますが、他のページには触れませんユーザーはページを編集します。そのため、あなたが管理者であるか、現在表示しているユーザー編集ページが自分のものである場合を除いて、ユーザーグループへのアクセスを無効にしました。
これを行う関数を作成しようとしましたが、allowOnly usergroups関数は、他の関数がページの他の場所で定義されているかどうかを確認せずに、罰を処理します。
これが「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関数を見逃したとしてもです。