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