fix stuff + module management

This commit is contained in:
Etienne Roudeix
2013-11-08 15:11:45 +01:00
parent e71fc7659e
commit be9aba9fb8
4 changed files with 22 additions and 10 deletions

View File

@@ -177,14 +177,18 @@ class SecurityContext
continue;
}
if(!array_key_exists('module', $userPermissions)) {
return false;
}
$module = strtolower($module);
if (!array_key_exists($module, $userPermissions)) {
if (!array_key_exists($module, $userPermissions['module'])) {
return false;
}
foreach ($accesses as $access) {
if (!$userPermissions[$module]->can($access)) {
if (!$userPermissions['module'][$module]->can($access)) {
return false;
}
}

View File

@@ -35,15 +35,24 @@ class Admin extends BaseAdmin implements UserInterface
return AdminResources::SUPERADMINISTRATOR;
}
$userPermissionsQuery = ProfileResourceQuery::create()
$userResourcePermissionsQuery = ProfileResourceQuery::create()
->joinResource("resource", Criteria::LEFT_JOIN)
->withColumn('resource.code', 'code')
->filterByProfileId($profileId)
->find();
$userModulePermissionsQuery = ProfileModuleQuery::create()
->joinModule("module", Criteria::LEFT_JOIN)
->withColumn('module.code', 'code')
->filterByProfileId($profileId)
->find();
$userPermissions = array();
foreach($userPermissionsQuery as $userPermission) {
$userPermissions[$userPermission->getVirtualColumn('code')] = new AccessManager($userPermission->getAccess());
foreach($userResourcePermissionsQuery as $userResourcePermission) {
$userPermissions[$userResourcePermission->getVirtualColumn('code')] = new AccessManager($userResourcePermission->getAccess());
}
foreach($userModulePermissionsQuery as $userModulePermission) {
$userPermissions['module'][strtolower($userModulePermission->getVirtualColumn('code'))] = new AccessManager($userModulePermission->getAccess());
}
return $userPermissions;