You are here

social_page.install in Open Social 8.6

Install, update and uninstall functions for the social_page module.

File

modules/social_features/social_page/social_page.install
View source
<?php

/**
 * @file
 * Install, update and uninstall functions for the social_page module.
 */
use Drupal\user\Entity\Role;

/**
 * Implements hook_install().
 *
 * Perform actions related to the installation of social_page.
 */
function social_page_install() {

  // Set some default permissions.
  _social_page_set_permissions();
}

/**
 * Function to set permissions.
 */
function _social_page_set_permissions() {
  $roles = Role::loadMultiple();

  /** @var \Drupal\user\Entity\Role $role */
  foreach ($roles as $role) {
    if ($role
      ->id() === 'administrator') {
      continue;
    }
    $permissions = _social_page_get_permissions($role
      ->id());
    user_role_grant_permissions($role
      ->id(), $permissions);
  }
}

/**
 * Build the permissions.
 */
function _social_page_get_permissions($role) {

  // Anonymous.
  $permissions['anonymous'] = [
    'view node.page.field_content_visibility:public content',
  ];

  // Authenticated.
  $permissions['authenticated'] = array_merge($permissions['anonymous'], [
    'view node.page.field_content_visibility:community content',
  ]);

  // Content manager.
  $permissions['contentmanager'] = array_merge($permissions['authenticated'], [
    'create page content',
    'delete any page content',
    'delete own page content',
    'edit any page content',
    'edit own page content',
    'view page revisions',
    'delete page revisions',
    'revert page revisions',
    'override page revision log entry',
    'override page authored by option',
    'override page published option',
    'override page authored on option',
    'override page promote to front page option',
    'override page revision option',
    'override page sticky option',
  ]);

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

Functions

Namesort descending Description
social_page_install Implements hook_install().
_social_page_get_permissions Build the permissions.
_social_page_set_permissions Function to set permissions.