You are here

function _social_group_get_permissions in Open Social 8.7

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  2. 8 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  3. 8.2 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  4. 8.3 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  5. 8.4 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  6. 8.5 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  7. 8.6 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  8. 8.8 modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  9. 10.3.x modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  10. 10.0.x modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  11. 10.1.x modules/social_features/social_group/social_group.install \_social_group_get_permissions()
  12. 10.2.x modules/social_features/social_group/social_group.install \_social_group_get_permissions()

Build the permissions.

Parameters

string $role: The role.

Return value

array Returns an array containing the permissions.

2 calls to _social_group_get_permissions()
social_group_update_8006 in modules/social_features/social_group/social_group.install
Add 'closed_group' group type and enable the permission for Authenticated.
_social_group_set_permissions in modules/social_features/social_group/social_group.install
Function to set permissions.

File

modules/social_features/social_group/social_group.install, line 93
Install, update and uninstall functions for the social_group module.

Code

function _social_group_get_permissions($role) {

  // Anonymous.
  $permissions['anonymous'] = [
    'access group search',
  ];

  // Authenticated.
  $permissions['authenticated'] = array_merge($permissions['anonymous'], [
    'create open_group group',
    'create closed_group group',
    'view group stream page',
    'view groups on my profile',
    'view groups on other profiles',
    'create public_group group',
  ]);
  $config = \Drupal::config('entity_access_by_field.settings');
  $disable_public_visibility = $config
    ->get('disable_public_visibility');
  if ($disable_public_visibility === 0) {
    $permissions['authenticated'][] = 'create public_group group';
  }

  // Content manager.
  $permissions['contentmanager'] = array_merge($permissions['authenticated'], [
    'manage all groups',
    'view node.book.field_content_visibility:group content',
    'view node.event.field_content_visibility:group content',
    'view node.topic.field_content_visibility:group content',
    'view node.page.field_content_visibility:group content',
    'access group overview',
    'edit group types',
  ]);

  // Site manager.
  $permissions['sitemanager'] = array_merge($permissions['contentmanager'], [
    'set social group settings',
  ]);
  if (isset($permissions[$role])) {
    return $permissions[$role];
  }
  return [];
}