/** * Deletes permissions from all groups * @param string $permission The permission to delete * @return boolean */ public static function deletePermission($permission) { // Init $group_list = SentrySetup::getGroups(); $group_list = Helpers::array_collate($group_list); $actions = [$permission]; foreach ($group_list as $key => $val) { $permissions[$key][] = 0; } $input = compact('actions', 'permissions'); try { SentrySetup::savePermissions($input); return true; } catch (Exception $e) { throw new Exception(); } }
public function getPermissions($group = '') { // Init $page = 'permissions'; $page_title = 'Permissions'; $group_permissions_list = config('sentrysetup.group_permission_values'); $empty_permissions = true; $delete_permission = Input::get('del', ''); try { // Delete if ($delete_permission) { $success = SentrySetup::deletePermission($delete_permission); return redirect('sentry-setup/permissions')->with('success', $success); } // List $group_list = SentrySetup::getGroups(); // Bounce if (!$group_list) { return redirect('sentry-setup/m/emptygroups'); } if ($group) { /* $group = SentrySetup::findGroupByName($group); $permissions = $group->getPermissions(); $permissions = SentrySetup::categorizePermissions($permissions); ksort($permissions); $data = compact('page', 'page_title', 'results', 'group', 'permissions', 'group_permissions_list'); return view('sentrysetup::permissions', $data); */ } else { foreach ($group_list as $val) { $group = Sentry::findGroupById($val->id); $permissions = $group->getPermissions(); $results[$val->name] = SentrySetup::categorizePermissions($permissions); // Check if there are any permissions at all (for display purposes) if ($empty_permissions) { $empty_permissions = $permissions ? false : true; } foreach ($permissions as $key => $val) { $str = explode('.', $key)[0]; $category_list[$str] = $str; } } // krumo($group_list); // krumo($category_list); // krumo($results); // Bouncer if ($empty_permissions) { return redirect('sentry-setup/m/emptypermissions'); } // Labels $label_list = SentrySetup::getLabels(); $label_list = Helpers::array_consolidate($label_list, 'short'); $data_arr = []; foreach ($category_list as $cat) { foreach ($results as $val) { if (isset($val[$cat])) { // kd($label_list); $label = isset($label_list[$cat]['label']) ? trim($label_list[$cat]['label'] . " ({$cat})") : "({$cat})"; foreach ($val[$cat] as $k => $v) { $data_arr[$label][$k] = $k; } } } } // Sort $sort = array_keys($data_arr); asort($sort); foreach ($sort as $val) { $sorted[$val] = $data_arr[$val]; } $data_arr = $sorted; foreach ($data_arr as $val) { foreach ($val as $v) { $action_list[] = $v; } } $action_list = array_flip($action_list); foreach ($action_list as $key => $val) { $action_list[$key] = explode('.', $key)[0]; } $permissions_list = []; foreach ($action_list as $key => $val) { foreach ($results as $v) { if (isset($v[$val][$key])) { $permissions_list[$key][] = $v[$val][$key]; } else { $permissions_list[$key][] = 0; } } } // krumo($permissions_list); $data = compact('page', 'page_title', 'group_list', 'data_arr', 'permissions_list'); return view('sentrysetup::permissions', $data); } } catch (Exception $e) { $data = compact('page', 'page_title'); return view('sentrysetup::permissions', $data)->with('fail', 'Unable to show your Permissions. Try again in a few seconds.'); } }