我正在將系統從symfony2遷移到節點。大部分情況都很好,但我在理解ACL的工作原理時遇到了一些麻煩。 我現在有一個想法,但看看mysql架構,我看到我有2列與實際權限,ace_order和面具。有人可以告訴我爲什麼有2個字段,而不是隻有一個和/或如何解釋它們,所以我可以翻譯成一個更簡單的模式。解釋Symfony的ACL模式
CREATE TABLE `acl_entries` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`class_id` int(10) unsigned NOT NULL,
`object_identity_id` int(10) unsigned DEFAULT NULL,
`security_identity_id` int(10) unsigned NOT NULL,
`field_name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
`ace_order` smallint(5) unsigned NOT NULL, <== first col
`mask` int(11) NOT NULL, <== second col
`granting` tinyint(1) NOT NULL,
`granting_strategy` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`audit_success` tinyint(1) NOT NULL,
`audit_failure` tinyint(1) NOT NULL,
PRIMARY KEY (`id`),
... other key stuff ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT;
編輯:
我如何ace_order影響權限最感興趣。
首先:我不知道。 但也許你在這裏找到你的答案:https://github.com/symfony/security-acl/blob/master/Domain/PermissionGrantingStrategy.php#L137 我會打開你的項目文件(供應商文件夾中的某個地方)並通過邏輯步驟... – 2014-11-28 08:18:29