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