phpGACL汉语手册(八)
phpGACL中文手册(八)
权限对象的命名
phpGACL 系统用双关键字组合唯一标识每一个权限对象( ARO 、 AXO 或 ACO 对象),并且它是权限对象类型。
它是用元组(权限对象类型,节,值)的形式来唯一标识权限对象的。
第一个元组元素是权限对象类型( ARO 、 AXO 或 ACO )。
元组的第二个元素叫节,它是由用户定义的命名权限对象通用类的字符串。多权限对象可以共享同一节名,节名很短但却是描述性的,它常被用在用户界面中的选择框中,因此不要它定义得太长。
节被保存在一个单位名称空间里,它不象组那样可以嵌套使用。节在组/ ARO/AXO 树中不做任何事,它仅仅只是为了帮助维护大量的权限对象。
元组的第三个元素叫值,是用户定义的权限对象名称,值中不能包含空格 (而节可以)。
节和值都是大小写敏感的。
另: 为什么用字符串来标识权限对象而不用看上去更快的整数呢,原因是为了易读性,从下例可以看出用
acl_check('system', 'login', 'users', 'john_doe');
比用
:
acl_check(10, 21004, 15, 20304);
更容易理解。
因为通过上下文可以十分清楚我们所指定的权限对象类型,所以 phpGACL (和本文档)在显示权限对象名时都去掉了权限对象类型而只需要采用" Section > Value" 格式就成了。而在 API 中则要求权限对象的"节"和"值"必须要在函数参数中分别指定(权限对象类型在参数描述中通常是不明白指定的)
例如 ACO 对象的"节 > 值"
- " 楼层 > 一楼"
- " 楼层 > 二楼"
- " 房间 > 发动机室"
例如 ARO 对象的"节 > 值"
" 人 >John_Smith"
" 人 >Cathy_Jones"
" 主机 >sandbox.something.com"
例如 API 的用法:
-
acl_check ( aco_section, aco_value, aro_section, aro_value);
-
acl_check ( 'Floors', '2nd', 'People', 'John_Smith' );
合法的命名限制实例:
- "ACO -Frob > Flerg", "ARO - Frob > Flerg" (虽然节和值都相同,但这种命名是合法的,因为名称空间被权限对象类型给区分开了)
- "ACO -Frob > Flerg", "ACO - Frob > Queegle" (虽然权限对象类型和节名都相同,但由于值名不同,所以该命名合法。
- "AXO - Frob Hrung > Flerg" (节名可以包含 空格)
不合法的命名限制实例:
- "ACO - Frob > Flerg", "ACO - Frob > Flerg" ("权限对象类型 - 节名 > 值名"必须是唯一的)
- "ACO - Frob > Flerg Habit" (值名中不能包含空格)
添加节
在你能添加一个新的权限对象之前,它的节名必须已经被添加。添加一个新的节名,可以使用 add_object_section() 函数。
简单描述该节的用处(如" Levels in building" )
节名(如" Floor" )
可以是一个任意的值,表示该节在用户界面上出现的次序
表示该节是否出现在用户界面中(如果是 TRUE 则意味着它将被隐藏)。
权限对象类型( "aco", "aro" 或 "axo" )
Han
为
ARO
对象创建 了三个节,它们分别是"人类","外星人"和"机器人"。让我们用它们的全名来列出
ARO
对象列表。
缺省:全部拒绝
千年隼号乘客
├─
船员
[
允许:全部
]
│├─"
人类
> Han
"
│├─"
外星人
> Chewie
" [
拒绝:发动机室
]
│└─"
人类
> Lando
"
├─
乘客
[
允许:休息室
]
│├─
绝地战士
[
允许:驾驶室
]
││├─"
人类
> Obi-wan
"
││└─"
人类
> Luke
" [
允许:武器室
]
│├─"
机器人
> R2D2
" [
允许:发动机室
]
│└─"
机器人
> C3PO
"
└─
工程师
[
允许:发动机室,武器室
]
├─"
人类
> Han
"
├─"
机器人
> R2D2
"
└─"
外星人
> Hontook
"
节仅仅只是一种权限对象的分类方式,以便使得用户界面更加友好, acl_check() 代码更具可读性。它并不影响 phpGACL 决定对象的权限。它不能被嵌套(因此它不能在"人类"节下更创建一个"男人"子节,你将不得不创建一个类似叫做" Humans-Male" 的节)
多目的
你也许需要用 phpGACL 来实现多个不同的目的。比方说,你也许需要限制用户访问网页的权限,并且还想限制远程主机访问你的服务器的权限。这两个任务之间并没有什么联系。
phpGACL 能通过下面三种不同的方式来处理。
- 可以在另一个数据库中保存权限表单。
- 可以在同一数据库中用不同的权限表单来保存。(该功能并没有实现)
- 你可以在同一个表单中保存权限对象的不同目的,并小心地管理你的列表以使它们不再冲突。
可以在创建一个新的 phpGACL 类时通过 $gacl_options 数组就可以实现选项 1 (当选项 2 可以实现时也一样),该数组允许你指定数据库和表单名的前缀。
$gacl_options = array(
'db_table_prefix' => 'gacl_',
'db_type' => 'mysql',
'db_host' => 'host1',
'db_user' => 'user',
'db_password' => 'passwd',
'db_name' => 'gacl');
?
$gacl_host1 = new gacl($gacl_options);
为了实现选项 3, 你必须要十分小心,因为 phpGACL 并不清楚你不同任务之间关系,因此有可能会生成无效的权限策略。
举个例子来说: Han 想限制其他飞船同他飞船计算机之间的联系,此外还要限制到不同房间的权限。为了做到这一点,他也许要添加" Luke 的 X 型战斗机"作为远程飞船 ARO 对象(此外还可以添加其他飞机并且将飞船的计算机作为 ACO 对象)。因为所有 ARO 对象都在同一 ARO 树,因此创建一个 APD 就象"飞船 > Luke 的 X 型战斗机" [ 允许:"房间 > 发动机室" ] 一样,是完全没有意义的!为了帮助处理象这样的错误,好的节名能够使象这样的权限对象更加清楚。这对于任何管理员都是十分明显的:为一个飞船指定一个访问房间权限是没有任何意义的。

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

Partie 1 : étapes de dépannage initiales Vérification de l'état du système Apple : avant d'aborder des solutions complexes, commençons par les bases. Le problème ne vient peut-être pas de votre appareil ; les serveurs Apple sont peut-être en panne. Visitez la page État du système d'Apple pour voir si l'AppStore fonctionne correctement. S'il y a un problème, tout ce que vous pouvez faire est d'attendre qu'Apple le résolve. Vérifiez votre connexion Internet : assurez-vous que vous disposez d'une connexion Internet stable, car le problème "Impossible de se connecter à l'AppStore" peut parfois être attribué à une mauvaise connexion. Essayez de basculer entre le Wi-Fi et les données mobiles ou de réinitialiser les paramètres réseau (Général > Réinitialiser > Réinitialiser les paramètres réseau > Paramètres). Mettez à jour votre version iOS :

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Watch4pro et gt ont chacun des fonctionnalités et des scénarios applicables différents. Si vous vous concentrez sur des fonctions complètes, des performances élevées et une apparence élégante, et que vous êtes prêt à supporter un prix plus élevé, alors Watch 4 Pro peut être plus approprié. Si vous n’avez pas d’exigences fonctionnelles élevées et que vous accordez plus d’attention à la durée de vie de la batterie et à un prix raisonnable, la série GT peut être plus adaptée. Le choix final doit être décidé en fonction des besoins personnels, du budget et des préférences. Il est recommandé d'examiner attentivement vos propres besoins avant d'acheter et de vous référer aux critiques et aux comparaisons des différents produits pour faire un choix plus éclairé.

Comment optimiser la durée de vie de la batterie de l'iPad avec iPadOS 17.4 L'extension de la durée de vie de la batterie est la clé de l'expérience des appareils mobiles, et l'iPad en est un bon exemple. Si vous avez l'impression que la batterie de votre iPad se décharge trop rapidement, ne vous inquiétez pas, il existe un certain nombre d'astuces et d'ajustements dans iPadOS 17.4 qui peuvent prolonger considérablement la durée de fonctionnement de votre appareil. L'objectif de ce guide détaillé n'est pas seulement de fournir des informations, mais aussi de changer la façon dont vous utilisez votre iPad, d'améliorer la gestion globale de votre batterie et de garantir que vous pouvez compter sur votre appareil plus longtemps sans avoir à le charger. En adoptant les pratiques décrites ici, vous faites un pas vers une utilisation plus efficace et plus consciente de la technologie, adaptée à vos besoins individuels et à vos modèles d'utilisation. Identifier les grands consommateurs d’énergie

En PHP, ACO fait référence à « Objet de contrôle d'accès ». Chaque ACO spécifique possède également un identifiant, qui est identifié au format M/C/A en fonction des exigences métier spécifiques, ACO peut être défini à un niveau d'action spécifique, ou. Niveau contrôleur ou niveau module entier.

Le 8 août, Huawei Terminal a officiellement lancé le Huawei MateBook GT14 "Super Starlight Show". Le célèbre acteur Jiang Shuying et le commentateur officiel de la League of Legends Professional League Guan Zeyuan étaient des invités dans la salle de diffusion en direct pour découvrir personnellement le Huawei MateBook GT14, le dernier ordinateur portable de Huawei. Lors de la diffusion en direct, Jiang Shuying et Guan Zeyuan n'ont pas tari d'éloges sur le Huawei MateBook GT14. CNMO a remarqué que lors de la diffusion en direct, Jiang Shuying, Guan Zeyuan et le président de la gamme de produits PC de Huawei ont été témoins du démontage du Huawei MateBook GT14. On constate que le design interne du Huawei MateBook GT14 est très soigné et adopte un design de carte mère haute densité. La carte mère est également partiellement enfoncée pour se distancier du clavier. celui-ci
