我正在将系统从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