Admin Wiki Dashboard
This commit is contained in:
@@ -322,13 +322,6 @@ class AdminController extends Controller
|
|||||||
return redirect('/admin/dashboard')->with('success', 'Entity removed from allowed login list.');
|
return redirect('/admin/dashboard')->with('success', 'Entity removed from allowed login list.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Displays the purge wiki page. This will be removed in favor of the wiki dashboard.
|
|
||||||
*/
|
|
||||||
public function displayPurgeWiki() {
|
|
||||||
return view('admin.dashboards.purge_wiki');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the wiki dashboard for wiki functions
|
* Display the wiki dashboard for wiki functions
|
||||||
*/
|
*/
|
||||||
@@ -342,45 +335,128 @@ class AdminController extends Controller
|
|||||||
->with('wikiMembership', $wikiMembership);
|
->with('wikiMembership', $wikiMembership);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Modify a user's wiki group
|
|
||||||
*/
|
|
||||||
public function modifyWikiUser(Request $request) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a wiki user
|
* Delete a wiki user
|
||||||
*/
|
*/
|
||||||
public function deleteWikiUser(Request $request) {
|
public function deleteWikiUser(Request $request) {
|
||||||
|
$this->validate($request, [
|
||||||
|
'user' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
//Declare helper variable
|
||||||
|
$wikiHelper = new WikiHelper;
|
||||||
|
|
||||||
|
$wikiHelper->DeleteWikiUser($request->user);
|
||||||
|
|
||||||
|
redirect('/admin/wiki/dashboard')->with('success', 'User: ' . $request->user . ' has been deleted.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a group to a wiki user
|
* Add a group to a wiki user
|
||||||
*/
|
*/
|
||||||
public function addWikiUserGroup(Request $request) {
|
public function addWikiUserGroup(Request $request) {
|
||||||
|
$this->validate($request, [
|
||||||
|
'user' => 'required',
|
||||||
|
'groupname' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
//Declare some helper variables
|
||||||
|
$wikiHelper = new WikiHelper;
|
||||||
|
|
||||||
|
//Check to see if the user has the group we are going to add first
|
||||||
|
if($wikiHelper->UserHasGroup($request->user, $request->groupname)) {
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('error', 'User already has the group.');
|
||||||
|
}
|
||||||
|
|
||||||
|
//Add the user to the wiki group
|
||||||
|
$wikiHelper->AddUserToGroup($request->user, $request->groupname);
|
||||||
|
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('success', 'User added to group for the wiki.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a group from a wiki user
|
* Remove a group from a wiki user
|
||||||
*/
|
*/
|
||||||
public function removeWikiUserGroup(Request $request) {
|
public function removeWikiUserGroup(Request $request) {
|
||||||
|
$this->validate($request, [
|
||||||
|
'user' => 'required',
|
||||||
|
'groupname' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
//Declare some helper variables
|
||||||
|
$wikiHelper = new WikiHelper;
|
||||||
|
|
||||||
|
//Check to see if the user has the group we are going to remove them from
|
||||||
|
if(!$wikiHelper->UserHasGroup($request->user, $request->groupname)) {
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('error', 'User does not have the group to remove.');
|
||||||
|
}
|
||||||
|
|
||||||
|
//Remove the user from the wiki group
|
||||||
|
$wikiHelper->RemoveUserFromGroup($request->user, $request->groupname);
|
||||||
|
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('success', 'Removed user from group ' . $request->grouopname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a user from all wiki groups
|
* Remove a user from all wiki groups
|
||||||
*/
|
*/
|
||||||
public function removeWikiUserAllGroups(Request $request) {
|
public function removeWikiUserAllGroups(Request $request) {
|
||||||
|
$this->validate($request, [
|
||||||
|
'user' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
//Declare variable
|
||||||
|
$wikiHelper = new WikiHelper;
|
||||||
|
|
||||||
|
$wikiHelper->RemoveUserFromAllGroups($request->user);
|
||||||
|
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('success', 'User successfully removed from all groups.');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert a new group for wiki user's to be added to
|
* Insert a new group for wiki user's to be added to
|
||||||
*/
|
*/
|
||||||
public function insertNewWikiUserGroup(Request $request) {
|
public function insertNewWikiUserGroup(Request $request) {
|
||||||
|
$this->validate($request, [
|
||||||
|
'group' => 'required',
|
||||||
|
'description' => 'required',
|
||||||
|
]);
|
||||||
|
|
||||||
|
//Declare variable
|
||||||
|
$wikiHelper = new WikiHelper;
|
||||||
|
|
||||||
|
$wikiHelper->AddNewUserGroup($request->group, $request->description);
|
||||||
|
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('success', 'Added new user group.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function purgeWikiUsers() {
|
||||||
|
//Declare helper classes
|
||||||
|
$lookup = new LookupHelper;
|
||||||
|
$wikiHelper = new WikiHelper;
|
||||||
|
|
||||||
|
//Get all the users from the database
|
||||||
|
$users = DokuUser::pluck('name')->all();
|
||||||
|
|
||||||
|
$legacy = AllowedLogin::where(['login_type' => 'Legacy'])->pluck('entity_id')->toArray();
|
||||||
|
$renter = AllowedLogin::where(['login_type' => 'Renter'])->pluck('entity_id')->toArray();
|
||||||
|
|
||||||
|
//Search the names and verify against the lookup table
|
||||||
|
//to find the corporation and / or alliance they belong to.
|
||||||
|
foreach($users as $user) {
|
||||||
|
//Let's look up the character in the user table by their name.
|
||||||
|
//If no name is found, then delete the user and have them start over with the wiki permissions
|
||||||
|
$count = User::where(['name' => $user])->count();
|
||||||
|
if($count > 0) {
|
||||||
|
//If the user is not allowed, then delete the user, otherwise, leave the user untouched
|
||||||
|
if(!$wikiHelper->AllowedUser($user)) {
|
||||||
|
$wikiHelper->DeleteWikiUser($user);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$wikiHelper->DeleteWikiUser($user);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect('/admin/wiki/dashboard')->with('success', 'Wiki has been purged.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,36 +25,6 @@ class WikiController extends Controller
|
|||||||
$this->middleware('auth');
|
$this->middleware('auth');
|
||||||
$this->middleware('role:Renter');
|
$this->middleware('role:Renter');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function purgeUsers() {
|
|
||||||
//Declare helper classes
|
|
||||||
$lookup = new LookupHelper;
|
|
||||||
$wikiHelper = new WikiHelper;
|
|
||||||
|
|
||||||
//Get all the users from the database
|
|
||||||
$users = DokuUser::pluck('name')->all();
|
|
||||||
|
|
||||||
$legacy = AllowedLogin::where(['login_type' => 'Legacy'])->pluck('entity_id')->toArray();
|
|
||||||
$renter = AllowedLogin::where(['login_type' => 'Renter'])->pluck('entity_id')->toArray();
|
|
||||||
|
|
||||||
//Search the names and verify against the lookup table
|
|
||||||
//to find the corporation and / or alliance they belong to.
|
|
||||||
foreach($users as $user) {
|
|
||||||
//Let's look up the character in the user table by their name.
|
|
||||||
//If no name is found, then delete the user and have them start over with the wiki permissions
|
|
||||||
$count = User::where(['name' => $user])->count();
|
|
||||||
if($count > 0) {
|
|
||||||
//If the user is not allowed, then delete the user, otherwise, leave the user untouched
|
|
||||||
if(!$wikiHelper->AllowedUser($user)) {
|
|
||||||
$this->DeleteWikiUser($user);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$this->DeleteWikiUser($user);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return redirect('/admin/dashboard')->with('success', 'Wiki has been purged.');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function displayRegister() {
|
public function displayRegister() {
|
||||||
//make user name syntax like we want it.
|
//make user name syntax like we want it.
|
||||||
@@ -157,19 +127,4 @@ class WikiController extends Controller
|
|||||||
|
|
||||||
return redirect('/dashboard')->with('success', 'Password changed successfully. Your username is: ' . $name);
|
return redirect('/dashboard')->with('success', 'Password changed successfully. Your username is: ' . $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function DeleteWikiUser($user) {
|
|
||||||
//Get the uid of the user as we will need to purge them from the member table as well.
|
|
||||||
//the member table holds their permissions.
|
|
||||||
$uid = DokuUser::where([
|
|
||||||
'name' => $user,
|
|
||||||
])->value('id');
|
|
||||||
//Delete the permissions of the user first.
|
|
||||||
DokuMember::where([
|
|
||||||
'uid' => $uid,
|
|
||||||
])->delete();
|
|
||||||
|
|
||||||
//Delete the user from the user table
|
|
||||||
DokuUser::where(['name' => $user])->delete();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,4 +113,65 @@ class WikiHelper {
|
|||||||
'uid' => $user->id,
|
'uid' => $user->id,
|
||||||
])->delete();
|
])->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check to see if a user is already in a group
|
||||||
|
*/
|
||||||
|
public function UserHasGroup($user, $groupname) {
|
||||||
|
|
||||||
|
//Get the user information
|
||||||
|
$user = DokuUser::where(['name' => $user])->first();
|
||||||
|
//Get the groups the user is a part of
|
||||||
|
$groups = DokuMember::where(['uid' => $user->id])->get();
|
||||||
|
//Get all of the groups
|
||||||
|
$allGroups = DokuGroupNames::all();
|
||||||
|
|
||||||
|
//cycle through all of the groups, and all of the user's groups to see if the user
|
||||||
|
//is part of the group we are seeking
|
||||||
|
foreach($allGroups as $all) {
|
||||||
|
foreach($groups as $group) {
|
||||||
|
//If the group is found, then send back the group has been found
|
||||||
|
if($group->gid === $all->id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//If we have made it here, then the user does not have the group, therefore,
|
||||||
|
//return the user doesn't have the group
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a new user group
|
||||||
|
*/
|
||||||
|
public function AddNewUserGroup($groupName, $description) {
|
||||||
|
//Check if the user group already exists
|
||||||
|
DokuGroupNames::where(['gname' => $groupName])->count();
|
||||||
|
|
||||||
|
if($count == 0) {
|
||||||
|
DokuGroupNames::insert([
|
||||||
|
'gname' => $groupName,
|
||||||
|
'description' => $description,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete all traces of a wiki user
|
||||||
|
*/
|
||||||
|
public function DeleteWikiUser($user) {
|
||||||
|
//Get the uid of the user as we will need to purge them from the member table as well.
|
||||||
|
//the member table holds their permissions.
|
||||||
|
$uid = DokuUser::where([
|
||||||
|
'name' => $user,
|
||||||
|
])->value('id');
|
||||||
|
//Delete the permissions of the user first.
|
||||||
|
DokuMember::where([
|
||||||
|
'uid' => $uid,
|
||||||
|
])->delete();
|
||||||
|
|
||||||
|
//Delete the user from the user table
|
||||||
|
DokuUser::where(['name' => $user])->delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -13,5 +13,6 @@ class DokuGroupNames extends Model
|
|||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'gname',
|
'gname',
|
||||||
|
'description',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
126
resources/views/admin/dashboards/wiki.blade.php
Normal file
126
resources/views/admin/dashboards/wiki.blade.php
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
@extends('admin.layouts.b4')
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<h2>Wiki Admin Dashboard</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Add User to Group</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Dashboard\AdminController@addWikiUserGroup', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('user', 'Select a User') }}
|
||||||
|
{{ Form::select('user', $wikiUsers, null, ['placeholder' => 'Pick A User']) }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('groupname', 'Group') }}
|
||||||
|
{{ Form::select('groupname', $wikiGroups, null, ['placeholder' => 'Pick A Group']) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Add User To Grouop', ['class' => 'btn btn-primary']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Create New User Group</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Dashboard\AdminController@insertNewWikiUserGroup', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('group', 'New Group Name') }}
|
||||||
|
{{ Form::text('group', '', ['class' => 'form-control']) }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::lable('description', 'Group Description') }}
|
||||||
|
{{ Form::text('description', '', ['class' => 'form-control']) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Add New Group', ['class' => 'btn btn-success']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Remove User From Group</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Dashboard\AdminController@removeWikiUserGroup', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('user', 'Select a User') }}
|
||||||
|
{{ Form::select('user', $wikiUsers, null, ['placeholder' => 'Pick A User']) }}
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('groupname', 'Group') }}
|
||||||
|
{{ Form::select('groupname', $wikiGroup, null, ['placeholder' => 'Pick A Group']) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Remove User From Group', ['class' => 'btn btn-warning']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Remove User From All Groups</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Dashboard\AdminController@removeWikiUserAllGroups', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('user', 'Select User') }}
|
||||||
|
{{ Form::select('user', $wikiUsers, null, ['placeholder' => 'Select User']) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Remove User From All Groups', ['class' => 'btn btn-danger']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Remove Wiki User</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Dashboard\AdminController@deleteWikiUser', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('user', 'Select User') }}
|
||||||
|
{{ Form::select('user', $user, null, ['placeholder' => 'Select User to Delete']) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Delete User', ['class' => 'btn btn-danger']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2>Purge Wiki</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
{!! Form::open(['action' => 'Dashboard\AdminController@purgeUsers', 'method' => 'POST']) !!}
|
||||||
|
<div class="form-group">
|
||||||
|
{{ Form::label('admin', 'This action will log the administrator who peformed the action.') }}
|
||||||
|
{{ Form::hidden('admin', auth()->user()->character_id) }}
|
||||||
|
</div>
|
||||||
|
{{ Form::submit('Purge Wiki', ['class' => 'btn btn-danger']) }}
|
||||||
|
{!! Form::close() !!}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
@@ -44,6 +44,14 @@ Route::group(['middleware' => ['auth']], function(){
|
|||||||
Route::post('/admin/add/allowedlogin', 'Dashboard\AdminController@addAllowedLogin');
|
Route::post('/admin/add/allowedlogin', 'Dashboard\AdminController@addAllowedLogin');
|
||||||
Route::post('/admin/rmoeve/allowedlogin', 'Dashboard\AdminController@removeAllowedLogin');
|
Route::post('/admin/rmoeve/allowedlogin', 'Dashboard\AdminController@removeAllowedLogin');
|
||||||
Route::get('/admin/dashboard/journal', 'Dashboard\AdminController@showJournalEntries');
|
Route::get('/admin/dashboard/journal', 'Dashboard\AdminController@showJournalEntries');
|
||||||
|
Route::get('/admin/dashboard/wiki', 'Dashboard\AdminController@displayWikiDashboard');
|
||||||
|
Route::post('/admin/dashboard/wiki', 'Dashboard\AdminController@deleteWikiUser');
|
||||||
|
Route::post('/admin/dashboard/wiki', 'Dashboard\AdminController@addWikiUserGroup');
|
||||||
|
Route::post('/admin/dashboard/wiki', 'Dashboard\AdminController@removeWikiUserGroup');
|
||||||
|
Route::post('/admin/dashboard/wiki', 'Dashboard\AdminController@removeWikiUserAllGroups');
|
||||||
|
Route::post('/admin/dashboard/wiki', 'Dashboard\AdminController@insertNewWikiUserGroup');
|
||||||
|
Route::post('/admin/dashboard/wiki', 'Dashboard\AdminController@purgeWikiUseres');
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AJAX Test pages
|
* AJAX Test pages
|
||||||
|
|||||||
Reference in New Issue
Block a user