Maison développement back-end tutoriel php 求PHP网站靠山管理 管理员 权限控制 系统方案

求PHP网站靠山管理 管理员 权限控制 系统方案

Jun 13, 2016 am 10:30 AM
id NOT null varchar

求PHP网站后台管理 管理员 权限控制 系统方案
小弟现在做一个网站后台,包括文章上传模块,供下载的文件上传,用户留言模块等。
问题:后台管理员权限分配

说明:现在系统有一个超级管理员,具有所有权限。现在想实现:超级管理员可以添加一般管理员,并且可以控制一般管理员的权限。比如控制某个一般用户只能上传文章,而不能上传图片等等,这该如何实现?求个思路,有源码实例更好啦!

另外,系统可能新增加其他模块(比如新增一个 图片上传模块等等),在新增了后台模块后,如何方便的配置原有管理员账号关于新增模块的相关权限? 

可能说的不太清楚,有问题欢迎跟帖!

最高只能给100分,不知能不能加分了!


------解决方案--------------------
每个权限都需要加一个标记。

如:

发布贴子 1

添加管理员 2

图片上传 3

...........

如用户具备已上三个权限

存记数据库,是数组,(1;2;3)

用户只具备发布贴子权限 (2;)

具备发布贴子和图片上传权限 (2;3;)

...........

判断是否助有权限时,查找是否包含就行。。

不知我是明白??
------解决方案--------------------
建立一个模块表。如果对该模块有操作权利,为1.否则.0


 1 0 1 1.很灵活的使用
------解决方案--------------------
建立一个模块表,模快表里面有个admin_group_id,记录那些是管理员可以看到的,那些是用户的..那一目了然比如
用户模快 1,3 --1表示最高管理员,3表示用户
上传模块 1,2 --1表示最高管理员,2表示一般管理员
------解决方案--------------------
建立一个模块表,模快表里面有个admin_group_id,记录那些是管理员可以看到的,那些是用户的..那一目了然比如
用户模快 1,3 --1表示最高管理员,3表示用户
上传模块 1,2 --1表示最高管理员,2表示一般管理员
------解决方案--------------------
phpgacl
------解决方案--------------------

探讨
每个权限都需要加一个标记。

如:

发布贴子 1

添加管理员 2

图片上传 3

...........

如用户具备已上三个权限

存记数据库,是数组,(1;2;3)

用户只具备发布贴子权限 (2;)

具备发布贴子和图片上传权限 (2;3;)

...........

判断是否助有权限时,查找是否包含就行。。

不知我是明白??

------解决方案--------------------
上面的多是简单权限
复杂的看权限角色模型,网上搜一下
------解决方案--------------------
使用组很方便

组表:
组id/组名
1/组1
2/组2
…………

权限表:
权限id/权限名
1/权限1
2/权限2
3/权限3
…………

组 权限关联表:
组id/权限id
1/1
1/2
2/2
2/4
…………

随意搭配,组1可能就是你的超管,组2是普管,你新建个组3,搭配一下,就是普通用户。新建组4,可能就是受限用户
------解决方案--------------------
看看dedecms的权限管理吧 我就是模仿的那种 我觉得非常灵活
------解决方案--------------------
探讨
谢谢各位的意见.

还有个问题:如果系统新增加其他模块(比如新增一个 图片上传模块等等),在新增了后台模块后,如何方便的配置原有管理员账号关于新增模块的相关权限?

------解决方案--------------------
我前两天也在弄这个权限问题,

自己设计了几个表

在zend auth下面使用的,搂主可以参考一下

/*角色表
-- id
-- 用户名
-- 密码
-- 工作组 A,B,C...
*/
DROP TABLE IF EXISTS role_acl;
CREATE TABLE role_acl (
id int(11) NOT NULL auto_increment,
username varchar(30) NOT NULL,
password varchar(20) NOT NULL,
work_group char(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/*工作组
-- id
-- 工作组 A,B,C...
-- 文字描述
*/
DROP TABLE IF EXISTS group_acl;
CREATE TABLE group_acl (
id int(11) NOT NULL auto_increment,
work_group char(1) NOT NULL,
group_desc varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
/* 角色 资源 动作 映射表
-- id
-- 工作组 A,B,C...
-- 资源代码
*/
DROP TABLE IF EXISTS mapped_acl;
CREATE TABLE mapped_acl (
id int(11) NOT NULL auto_increment,
work_group varchar(1) NOT NULL,
resource varchar(20) NOT NULL,
action varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cet identifiant Apple n'est pas encore utilisé dans l'iTunes Store : correctif Cet identifiant Apple n'est pas encore utilisé dans l'iTunes Store : correctif Jun 10, 2024 pm 05:42 PM

Lors de la connexion à iTunesStore à l'aide de l'AppleID, cette erreur indiquant "Cet AppleID n'a pas été utilisé dans iTunesStore" peut s'afficher à l'écran. Il n'y a pas de messages d'erreur à craindre, vous pouvez les corriger en suivant ces ensembles de solutions. Correctif 1 – Modifier l'adresse de livraison La principale raison pour laquelle cette invite apparaît dans l'iTunes Store est que vous n'avez pas la bonne adresse dans votre profil AppleID. Étape 1 – Tout d’abord, ouvrez les paramètres iPhone sur votre iPhone. Étape 2 – AppleID doit être au-dessus de tous les autres paramètres. Alors, ouvrez-le. Étape 3 – Une fois sur place, ouvrez l’option « Paiement et expédition ». Étape 4 – Vérifiez votre accès à l'aide de Face ID. étape

Correction de l'erreur de disque ID d'événement 55, 50, 98, 140 dans l'observateur d'événements Correction de l'erreur de disque ID d'événement 55, 50, 98, 140 dans l'observateur d'événements Mar 19, 2024 am 09:43 AM

Si vous trouvez l'ID d'événement 55, 50, 140 ou 98 dans l'Observateur d'événements de Windows 11/10, ou si vous rencontrez une erreur indiquant que la structure du système de fichiers du disque est endommagée et ne peut pas être utilisée, veuillez suivre le guide ci-dessous pour résoudre le problème. Que signifie l'événement 55, Structure du système de fichiers sur le disque corrompue et inutilisable ? À la session 55, la structure du système de fichiers sur le disque Ntfs est corrompue et inutilisable. Veuillez exécuter l'utilitaire chkMSK sur le volume. Lorsque NTFS ne parvient pas à écrire des données dans le journal des transactions, une erreur avec l'ID d'événement 55 est déclenchée, ce qui empêchera NTFS de terminer l'opération incapable d'écrire les données de transaction. Cette erreur se produit généralement lorsque le système de fichiers est corrompu, probablement en raison de la présence de secteurs défectueux sur le disque ou de l'inadéquation du système de fichiers du sous-système de disque.

Où puis-je trouver l'identifiant Alibaba ? Où puis-je trouver l'identifiant Alibaba ? Mar 08, 2024 pm 09:49 PM

Dans le logiciel Alibaba, une fois que vous avez enregistré un compte avec succès, le système vous attribuera un identifiant unique, qui servira d'identité sur la plateforme. Mais pour de nombreux utilisateurs, ils souhaitent interroger leur identifiant, mais ne savent pas comment le faire. Ensuite, l'éditeur de ce site Web vous présentera ci-dessous une introduction détaillée aux étapes de la stratégie, j'espère que cela pourra vous aider ! Où puis-je trouver la réponse à l'identifiant Alibaba : [Alibaba]-[Mon]. 1. Ouvrez d'abord le logiciel Alibaba. Après avoir accédé à la page d'accueil, nous devons cliquer sur [Mon] dans le coin inférieur droit. 2. Ensuite, après avoir accédé à la page Mon, nous pouvons voir [id] en haut de la page ; L'ID est-il le même que Taobao ID et Taobao ID sont différents, mais les deux

Où vérifier l'identifiant vidéo Tencent Où vérifier l'identifiant vidéo Tencent Feb 24, 2024 pm 06:25 PM

Où puis-je vérifier l'ID vidéo Tencent ? Il existe un identifiant exclusif dans l'application Tencent Video, mais la plupart des utilisateurs ne savent pas comment vérifier l'ID vidéo Tencent. Voici ensuite le didacticiel graphique sur la façon de vérifier l'ID vidéo Tencent apporté par l'application. éditeur pour les utilisateurs intéressés, venez jeter un oeil ! Tutoriel d'utilisation de Tencent Video Où vérifier l'ID de Tencent Video 1. Ouvrez d'abord l'application Tencent Video et entrez dans la zone spéciale via [Centre personnel] dans le coin inférieur droit de la page principale ; Fonction Paramètres] ; 3. Accédez ensuite à la page Paramètres, cliquez sur [Quitter le compte] en bas. 4. Enfin, vous pouvez afficher le numéro d'identification exclusif sur la page ci-dessous ;

ID d'événement 4660 : objet supprimé [Correctif] ID d'événement 4660 : objet supprimé [Correctif] Jul 03, 2023 am 08:13 AM

Certains de nos lecteurs ont rencontré l'événement ID4660. Ils ne savent souvent pas quoi faire, c'est pourquoi nous l'expliquons dans ce guide. L'ID d'événement 4660 est souvent enregistré lorsque des objets sont supprimés. Nous explorerons donc également quelques moyens pratiques de le corriger sur votre ordinateur. Qu'est-ce que l'événement ID4660 ? L'ID d'événement 4660 est lié aux objets dans Active Directory et sera déclenché par l'un des facteurs suivants : Suppression d'objet – Un événement de sécurité avec l'ID d'événement 4660 est enregistré chaque fois qu'un objet est supprimé d'Active Directory. Modifications manuelles – L'ID d'événement 4660 peut être généré lorsqu'un utilisateur ou un administrateur modifie manuellement les autorisations d'un objet. Cela peut se produire lors de la modification des paramètres d'autorisation, de la modification des niveaux d'accès ou de l'ajout ou de la suppression de personnes ou de groupes.

Quelles sont les solutions pour l'ID distribué Redis ? Quelles sont les solutions pour l'ID distribué Redis ? Jun 03, 2023 am 10:14 AM

Solutions d'identification distribuées couramment utilisées Dans les systèmes distribués, il est très important de générer des ID globalement uniques, car dans les systèmes distribués, plusieurs nœuds générant des ID en même temps peuvent provoquer des conflits d'ID. Ce qui suit présente plusieurs solutions d’identification distribuées couramment utilisées. UUIDUUID (Universally Unique Identifier) ​​​​​​est un identifiant composé de 128 chiffres, qui peut garantir une unicité globale car son algorithme de génération est basé sur des facteurs tels que l'horodatage et l'ID du nœud. L'UUID peut être généré à l'aide de la propre classe UUID de Java, comme indiqué ci-dessous : javaCopycodeimportjava.util.UUID;publicclassUuidGenerator{publicstat

Comment trouver l'ID du processus parent (PPID) sous Linux Comment trouver l'ID du processus parent (PPID) sous Linux Mar 09, 2024 am 08:01 AM

Dans le système d'exploitation Linux, chaque programme en cours d'exécution est un processus et chaque processus possède un identifiant de processus (PID) unique. De même, chaque processus aura un processus parent, qui est le processus qui l'a créé. L'identifiant du processus parent est appelé ID de processus parent (PPID). Dans cet article, nous explorerons comment trouver l'ID d'un processus parent dans un système Linux et présenterons quelques commandes et outils efficaces pour vous aider à obtenir des informations détaillées sur la relation entre les processus. Commandes de base pour trouver l'ID du processus parent Tout d'abord, je vais vous présenter brièvement quelques commandes de base qui peuvent être utilisées pour afficher tous les processus exécutés dans le système et leur ID de processus parent. Utilisez la commande ps pour afficher les informations sur le processus. La commande ps est un outil puissant utilisé pour créer des rapports.

Que signifient indéfini et nul ? Que signifient indéfini et nul ? Nov 20, 2023 pm 02:39 PM

En JavaScript, non défini et null représentent le concept de « rien » : 1. undéfini représente une variable non initialisée ou une propriété inexistante lorsqu'une variable est déclarée mais qu'aucune valeur ne lui est attribuée, la valeur de la variable est undéfinie. lors de l'accès à des propriétés qui n'existent pas dans l'objet, la valeur renvoyée est également indéfinie ; 2. null représente une référence d'objet vide Dans certains cas, la référence d'objet peut être définie sur null pour libérer la mémoire qu'elle occupe.

See all articles