function _og_features_get_permissions in Organic groups 7.2
Get all defined permissions keyed by permission with.
3 calls to _og_features_get_permissions()
- og_features_permission_features_export in includes/
og_features_permission.features.inc - Implements hook_features_export().
- og_features_permission_features_export_options in includes/
og_features_permission.features.inc - Implements hook_features_export_options().
- og_features_permission_features_export_render in includes/
og_features_permission.features.inc - Implements hook_Features_export_render().
File
- includes/
og_features_permission.features.inc, line 169 - Integration with features for og permissions.
Code
function _og_features_get_permissions() {
$return = array();
$query = db_select('og_role', 'ogr');
$query
->innerJoin('og_role_permission', 'ogrp', 'ogr.rid = ogrp.rid');
$result = $query
->condition('ogr.gid', '0')
->fields('ogr', array(
'group_type',
'group_bundle',
'name',
))
->fields('ogrp', array(
'permission',
))
->orderBy('ogr.group_type')
->orderBy('ogr.group_bundle')
->orderBy('ogrp.permission')
->execute();
$assigned_perms = array();
while ($row = $result
->fetchAssoc()) {
$assigned_perms[$row['group_type']][$row['group_bundle']][$row['permission']][] = $row['name'];
}
$perms = og_get_permissions();
$groups = og_get_all_group_bundle();
foreach ($groups as $group_type => $bundles) {
foreach ($bundles as $bundle => $name) {
foreach ($perms as $perm => $info) {
if (empty($assigned_perms[$group_type][$bundle][$perm])) {
$return[$group_type][$bundle][$perm]['roles'] = array();
}
else {
$return[$group_type][$bundle][$perm]['roles'] = $assigned_perms[$group_type][$bundle][$perm];
}
$return[$group_type][$bundle][$perm]['module'] = $info['module'];
}
}
}
return $return;
}