it-swarm-vi.com

Làm thế nào để phát hiện nếu người dùng là Siêu người dùng?

Để xác định xem khách truy cập có phải là khách, chúng tôi sử dụng một cái gì đó như thế này:

if ($user->guest) {
echo 'Hello, guest!';
}

Bây giờ, nếu tôi muốn xác định xem khách truy cập có phải là SuperUser (Quản trị viên) đã đăng ký hay không, thì mã đó sẽ là gì?

Tôi có một số tệp bên ngoài PHP mà tôi không thể truy cập được bởi bất kỳ ai ngoại trừ SuperUsers của Trang web Joomla của tôi. Chỉ cần cố gắng bảo mật các tệp bằng cách nhập Joomla CMS.

20
saibbyweb

các mã này sẽ xác định xem người dùng đã đăng nhập hiện tại có phải là siêu người dùng hay không -

$user = JFactory::getUser();
$isroot = $user->authorise('core.admin');

mã đó sẽ kiểm tra những gì được ánh xạ tới quyền "Siêu người dùng" trong cấu hình toàn cầu và không chỉ ở cấp thành phần. Kiểm tra nó so sánh với các cách khác.

28
dev-m

Để xác định trạng thái "Siêu người dùng", bạn phải kiểm tra $user->isRoot. Thuộc tính này được đặt sau khi kiểm tra ủy quyền đầu tiên được thực hiện và người dùng được phát hiện là siêu quản trị viên.

Tuy nhiên, thông thường bạn thực sự muốn kiểm tra xem người dùng có các quyền nhất định như được mô tả trong các câu trả lời khác hay không.

8
Bakual

Bạn có thể sử dụng một điều kiện để từ chối bất kỳ ai không thuộc một nhóm cụ thể.

$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;
6
Adam Tremblay Lavoie

Thử đi,

$user  = JFactory::getUser();

$user_groups = $user->groups;

print_r($user_groups);

Điều này sẽ trả về một mảng, theo mặc định người dùng Quản trị viên Joomla Siêu quản trị viên (Nhóm 8) và Quản trị viên (Nhóm 7).

Bạn có thể kiểm tra mảng có bất kỳ giá trị nào trong số này không, đó phải là người dùng Quản trị viên, Nếu bạn đã tạo nhóm Người dùng tùy chỉnh thì bạn phải kiểm tra #__usergroupsparent Id quá.

Hy vọng nó giúp..

6
Jobin Jose

Hãy thử mã bên dưới để kiểm tra xem người dùng đăng nhập là siêu quản trị viên hay người dùng khác ...

$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';
}
4
PCMShaper

Joomla @since 3.2, trường UsergroupList sử dụng điều này để kiểm tra:

$isSuperUser = JFactory::getUser()->authorise('core.admin');
2
Pedro Bicudo Maschio