get('admins_permissions')); if (hasPerm('edit_permissions')) { $db->setCol('system_roles'); if (isset($_POST['smbt'])) { //Perms finden und in en Array tun $permArr = []; foreach ($_POST as $perm => $val) { if ($perm != 'smbt' && $val == 'true') { $perm_full = $perm; $perm = explode('_', $perm); //echo '
'.print_r($perm, true).'
'; if(isset($perm[1], $perm[0])) { $permArr[$perm[0]][$perm[1]][] = str_replace($perm[0] . '_' . $perm[1] . '_', '', $perm_full); } } } foreach ($permArr as $lvl => $perms) { $db->setCol('system_roles'); $db->data['permissions'] = json_encode($perms); if ($db->update(['id' => $lvl])) { echo msg('success', $lang->get('admins_perms_set_success').' {back}'); stream_message('{user} edited permissions.', 3); } else { echo msg('fail', $lang->get('admins_perms_set_fail').' {back}'); } } } else { echo '
'; //Admin Groups $db->get(); $role_names = []; $role_perms = []; $roles_descr = ''; foreach ($db->data as $role_name) { $role_names[$role_name['id']] = $role_name['name']; $roles_descr .= '' . $role_name['name'] . ''; //Already set permissions $role_perms[$role_name['id']] = []; $perms = []; if ($role_name['permissions'] != '') $perms = json_decode($role_name['permissions'], true); //print_r($perms); foreach ($perms as $apps => $perm) { foreach ($perm as $item) { $role_perms[$role_name['id']][] = $apps . '.' . $item; } } } //print_r($role_perms); //Get All $permsTotal = []; $permsTotal['System'] = json_decode(file_get_contents('permissions.json'), true); $permsTotal['System'] = $permsTotal['System']['permissions']; $apps = new apps(); $appUri = '../apps/'; foreach ($apps->getApps() as $app => $appconf) { if (file_exists($appUri . '/' . $appconf['app_path'] . '/permissions.json')) { require $appUri . '/' . $appconf['app_path'] . '/config.php'; $lang->setLangFolder( $appUri . $appconf['app_path'] .'/lang/'); $permsTotal[$_CONF['app_name']] = json_decode(file_get_contents($appUri . '/' . $appconf['app_path'] . '/permissions.json'), true); $permsTotal[$_CONF['app_name']] = $permsTotal[$_CONF['app_name']]['permissions']; } } //print_r($permsTotal); foreach ($permsTotal as $title => $perms) { echo '' . $roles_descr . ''; foreach ($perms as $perm) { $critical = ''; if ($perm['critical'] == true) $critical = ''; echo ''; foreach ($role_names as $lvl => $name) { $disable = ''; if ($lvl == 1) $disable = ' disabled="disabled"'; $checked = ''; if ($lvl == 1) $checked = ' checked="checked"'; if (in_array($title . '.' . $perm['key'], $role_perms[$lvl])) $checked = ' checked="checked"'; $id = $lvl . '.' . $title . '.' . $perm['key']; echo ''; //title="'.print_r($role_perms[$lvl], true).$title . '.' . $perm['key'].'" } echo ''; } echo '
' . $title . '
' . $critical . $lang->get($perm['name']) . '
'; } echo '
'; } } else { echo msg('info', $lang->get('missing_permission')); } require_once '../inc/footer.php';