[英]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.