You are here

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;
}