You are here

function opigno_statistics_app_install_permissions in Opigno Statistics App 7

Set default permissions and og permissions

1 call to opigno_statistics_app_install_permissions()
opigno_statistics_app_install in ./opigno_statistics_app.install
Implements hook_install()

File

./opigno_statistics_app.install, line 459
Contains install instructions and logic

Code

function opigno_statistics_app_install_permissions() {
  $administrator = user_role_load_by_name('administrator');
  $administrator_permissions = array(
    'view opigno global statistics',
    'view own opigno user statistics',
    'view all opigno user statistics',
    'view own courses classes statistics',
  );
  if (isset($administrator->rid)) {
    user_role_grant_permissions($administrator->rid, $administrator_permissions);
  }
  $student_manager = user_role_load_by_name('student manager');
  $student_manager_permissions = array(
    'view opigno global statistics',
    'view own opigno user statistics',
    'view all opigno user statistics',
    'view own courses classes statistics',
  );
  if (isset($student_manager->rid)) {
    user_role_grant_permissions($student_manager->rid, $student_manager_permissions);
  }
  $authenticated = user_role_load_by_name('authenticated user');
  $authenticated_permissions = array(
    'view own opigno user statistics',
  );
  if (isset($authenticated->rid)) {
    user_role_grant_permissions($authenticated->rid, $authenticated_permissions);
  }

  /* Default and existing group permissions */
  $existing_courses_classes = opigno_statistics_app_get_all_courses_classes();
  $existing_courses_classes[0] = 'default permissions';
  foreach ($existing_courses_classes as $nid => $type) {

    // If default permissions, take the courses and classes roles
    if ($nid === 0) {
      $roles = og_roles('node', 'course', $nid, $force_group = FALSE, $include_all = TRUE);
      $roles += og_roles('node', 'class', $nid, $force_group = FALSE, $include_all = TRUE);
    }
    else {
      $roles = og_roles('node', $type, $nid, $force_group = FALSE, $include_all = TRUE);
    }
    foreach ($roles as $index => $role) {
      switch ($role) {
        case 'coach':
          og_role_grant_permissions($index, array(
            'view group statistics',
          ));
          break;
        case 'manager':
          og_role_grant_permissions($index, array(
            'view group statistics',
          ));
          break;
        case 'teacher':
          og_role_grant_permissions($index, array(
            'view group statistics',
          ));
          break;
      }
    }
  }
}