簡體   English   中英

用戶權限自定義cms

[英]User permissions custom cms

在我當前的設置上尋找一些建議,以及是否有更好的方法(這是我首次嘗試構建這樣的應用程序),但是我此時需要用戶角色,只有user和admin兩個角色。

我有一個用戶表和一個組表,還有一個連接表,該表從用戶表中獲取ID,從組表中獲取ID,我也可以分配用戶所屬的組。

我想設置一種方法來做幾件事,通過輸入url /admin/index.php來防止“用戶”訪問管理區域,並且如果他們是管理員但沒有看到,還會在索引頁面上顯示鏈接如果他們是普通用戶的話。

這是我的代碼,以證明我可以顯示用戶角色標題,但此時仍處於掙扎狀態:

<?php
$user = $_SESSION['user'];
    try{
        $results = $dbh->query("SELECT *
                                FROM groups
                                INNER JOIN user_group_link_table
                                ON groups.id = user_group_link_table.group_id
                                WHERE user_group_link_table.user_id = $user");

}catch(Exception $e) {
    echo $e->getMessage();
    die();
}

$group = $results->fetchAll(PDO::FETCH_ASSOC);

foreach($group as $groups){  

echo 

      $groups["name"]
      // show a link to admins that user do not see?
    ;}
?>

我想知道我的方法是否完全錯誤?

UPDATE

<?
include('session.php');
if (!isset($_SESSION['user'])) {
  header("Location: index.php");
}
if(!ini_get('date.timezone'))
{
    date_default_timezone_set('GMT');
}
// This could be an include file for all admin pages
$isAdmin = false;
foreach($group as $groups){
    if($groups['name'] === 'admin'){
        $isAdmin = true;
        break;
    }
}

if(!$isAdmin){
    header('Location: index.php'); // or some other arbitrary location
    die();
}
?>

我得到這個錯誤:

注意:未定義的變量:第12行的/ Applications / MAMP / htdocs / dashboardr v3.2.3 / admin / header.php中的組

警告:在第12行的/ Applications / MAMP / htdocs / dashboardr v3.2.3 / admin / header.php中為foreach()提供了無效的參數

我想設置一種方法來做幾件事,通過輸入url /admin/index.php來防止“用戶”訪問管理區域,並且如果他們是管理員但沒有看到,還會在索引頁面上顯示鏈接如果他們是普通用戶的話。

我將為您提供一個可以在當前設置中使用的解決方案; 這不是要走路,但我現在就把工作做好。 如果您擔心用戶處於特定角色,則最好在查詢中指定該角色,而不要遍歷其所有潛在角色。

// This could be an include file for all admin pages
$isAdmin = false;
foreach($group as $groups){
    if($groups['name'] === 'admin'){
        $isAdmin = true;
        break;
    }
}

if(!$isAdmin){
    header('Location: index.php'); // or some other arbitrary location
    die;
}

在吐出任何類型的HTML之前,您都希望將其放置在頁面的頂部。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM