訪問者がゲストかどうかを判断するには、次のようなものを使用します。
if ($user->guest) {
echo 'Hello, guest!';
}
ここで、訪問者が登録済みのスーパーユーザー(管理者)かどうかを判断したい場合、そのコードはどうなりますか?
Joomla Webサイトのスーパーユーザー以外の誰もアクセスしたくない外部PHPファイルがいくつかあります。Joomla CMSをインポートしてファイルを保護しようとしています。
訪問者がゲストかどうかを判断するには、次のようなものを使用します。
if ($user->guest) {
echo 'Hello, guest!';
}
ここで、訪問者が登録済みのスーパーユーザー(管理者)かどうかを判断したい場合、そのコードはどうなりますか?
Joomla Webサイトのスーパーユーザー以外の誰もアクセスしたくない外部PHPファイルがいくつかあります。Joomla CMSをインポートしてファイルを保護しようとしています。
回答:
これらのコードは、現在ログインしているユーザーがスーパーユーザーであるかどうかを決定します-
$user = JFactory::getUser();
$isroot = $user->authorise('core.admin');
そのコードは、コンポーネントレベルだけでなく、グローバル構成の「スーパーユーザー」権限にマップされているものをチェックします。他の方法と比較して自分で確認してください。
core.admin
ですが、チェックするよりも良い許可だと思いますcore.edit
。
libraries/joomla/user/user.php
ファイルの747行にあります。これは次の$iAmSuperAdmin = $my->authorise('core.admin');
「スーパーユーザー」ステータスを確認するには、を確認する必要があり$user->isRoot
ます。このプロパティは、最初の承認チェックが行われ、ユーザーがスーパー管理者であることが検出された後に設定されます。
ただし、通常、ユーザーが他の回答で説明されているような特定の権限を持っているかどうかを確認する方が良いでしょう。
条件を使用して、特定のグループに属さない人を拒否できます。
$user = JFactory::getUser();
$groups = $user->groups;
if (in_array(8, $groups)):
//only enter if the user is in the group 8 (group 8 = Super-Administrator)
endif;
if(in_array(8, $user->groups))
、それは私のために働いた
ログインユーザーがスーパー管理者または他のユーザーであるかどうかを確認するには、以下のコードを試してください...
$user = JFactory::getUser();
$isAdmin = $user->get('isRoot');
if ($isAdmin) {
echo 'You are an Administrator';
}
else {
echo 'You are not Administrator';
}
OR
function isSuperAdmin()
{
$user = JFactory::getUser();
return $user->get('isRoot');
}
if (isSuperAdmin())
{
echo 'You are an Administrator';
}
else {
echo 'You are not Administrator';
}
$user->get('isRoot');
J3.6.2では機能しません。
Joomla @since 3.2、フィールドUserGroupListはこれを使用して以下を確認します。
$isSuperUser = JFactory::getUser()->authorise('core.admin');