You are here

function opigno_in_house_app_install_default_permissions in Opigno in house training app 7

1 call to opigno_in_house_app_install_default_permissions()
opigno_in_house_training_app_install in ./opigno_in_house_training_app.install
Implements hook_install()

File

./opigno_in_house_training_app.install, line 529
Contains install instructions and logic @ Carrard Cédric

Code

function opigno_in_house_app_install_default_permissions() {
  $administrator = user_role_load_by_name('administrator');
  $administrator_permissions = array(
    'create in_house_training content',
    'edit own in_house_training content',
    'edit any in_house_training content',
    'delete own in_house_training content',
    'delete any in_house_training content',
    'score in_house_app content',
  );
  user_role_grant_permissions($administrator->rid, $administrator_permissions);
  $student_manager = user_role_load_by_name('student manager');
  $student_manager_permissions = array(
    'create in_house_training content',
    'edit own in_house_training content',
    'delete own in_house_training content',
    'score in_house_app content',
  );
  user_role_grant_permissions($student_manager->rid, $student_manager_permissions);

  /* Default permission */
  og_invalidate_cache();
  $roles = og_roles("node", "course", $gid = 0, $force_group = FALSE, $include_all = TRUE);
  foreach ($roles as $index => $role) {
    switch ($role) {
      case 'student':
        og_role_grant_permissions($index, array(
          'view in_house_app content',
        ));
        break;
      case 'coach':
        og_role_grant_permissions($index, array(
          'view in_house_app content',
        ));
        og_role_grant_permissions($index, array(
          'score in_house_app content',
        ));
        og_role_grant_permissions($index, array(
          'create in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'update own in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'delete own in_house_training content',
        ));
        break;
      case "teacher":
        og_role_grant_permissions($index, array(
          'view in_house_app content',
        ));
        og_role_grant_permissions($index, array(
          'score in_house_app content',
        ));
        og_role_grant_permissions($index, array(
          'create in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'update own in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'delete own in_house_training content',
        ));
        break;
      case "forum moderator":
        og_role_grant_permissions($index, array(
          'view in_house_app content',
        ));
        break;
      case "manager":
        og_role_grant_permissions($index, array(
          'view in_house_app content',
        ));
        og_role_grant_permissions($index, array(
          'score in_house_app content',
        ));
        og_role_grant_permissions($index, array(
          'create in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'update own in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'update any in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'delete any in_house_training content',
        ));
        og_role_grant_permissions($index, array(
          'delete own in_house_training content',
        ));
        break;
    }
  }

  /* Existing group permissions */
  $existing_courses = opigno_in_house_training_app_get_all_courses();
  foreach ($existing_courses as $courseid => $course) {
    $roles = og_roles("node", "course", $courseid, $force_group = FALSE, $include_all = TRUE);
    foreach ($roles as $index => $role) {
      switch ($role) {
        case 'student':
          og_role_grant_permissions($index, array(
            'view in_house_app content',
          ));
          break;
        case 'coach':
          og_role_grant_permissions($index, array(
            'view in_house_app content',
          ));
          og_role_grant_permissions($index, array(
            'score in_house_app content',
          ));
          og_role_grant_permissions($index, array(
            'create in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'update own in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'delete own in_house_training content',
          ));
          break;
        case "teacher":
          og_role_grant_permissions($index, array(
            'view in_house_app content',
          ));
          og_role_grant_permissions($index, array(
            'score in_house_app content',
          ));
          og_role_grant_permissions($index, array(
            'create in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'update own in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'delete own in_house_training content',
          ));
          break;
        case "forum moderator":
          og_role_grant_permissions($index, array(
            'view in_house_app content',
          ));
          break;
        case "manager":
          og_role_grant_permissions($index, array(
            'view in_house_app content',
          ));
          og_role_grant_permissions($index, array(
            'score in_house_app content',
          ));
          og_role_grant_permissions($index, array(
            'create in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'update own in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'update any in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'delete any in_house_training content',
          ));
          og_role_grant_permissions($index, array(
            'delete own in_house_training content',
          ));
          break;
      }
    }
  }
}