Admin User Managment
This commit is contained in:
parent
1ba06fcda8
commit
0d033078e7
7 changed files with 163 additions and 51 deletions
|
@ -24,15 +24,6 @@ class AdminController extends Controller
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
public function listMails() {
|
|
||||||
if(!Auth::user()->admin) {
|
|
||||||
throw new HTTPException("Need Admin Access");
|
|
||||||
}
|
|
||||||
$mails = Mail::query()->get("*");
|
|
||||||
return view('admin/mails_list', ["mails"=>$mails]);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function inviteView() {
|
public function inviteView() {
|
||||||
if(!Auth::user()->admin) {
|
if(!Auth::user()->admin) {
|
||||||
throw new HTTPException("Need Admin Access");
|
throw new HTTPException("Need Admin Access");
|
||||||
|
@ -133,5 +124,41 @@ class AdminController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function listUser() {
|
||||||
|
if(!Auth::user()->admin) {
|
||||||
|
throw new HTTPException("Need Admin Access");
|
||||||
|
}
|
||||||
|
$users = User::query()->get();
|
||||||
|
|
||||||
|
return view('admin/user_list', ["msg"=>"", "users" => $users]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function userDetails($id) {
|
||||||
|
if(!Auth::user()->admin) {
|
||||||
|
throw new HTTPException("Need Admin Access");
|
||||||
|
}
|
||||||
|
$user = User::query()->where("id", "=", $id)->firstOrFail();
|
||||||
|
|
||||||
|
$mails = Mail::query()->where("user_id", "=", $id)->get();
|
||||||
|
|
||||||
|
return view('admin/user_details', ["msg"=>"", "editUser" => $user, "mails" => $mails]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function saveUserDetails(Request $request, $id) {
|
||||||
|
if(!Auth::user()->admin) {
|
||||||
|
throw new HTTPException("Need Admin Access");
|
||||||
|
}
|
||||||
|
$user = User::query()->where("id", "=", $id)->firstOrFail();
|
||||||
|
|
||||||
|
$user->admin = (bool)$request->input("admin", false);
|
||||||
|
$user->developer = (bool)$request->input("developer", false);
|
||||||
|
$user->username = $request->input("username");
|
||||||
|
|
||||||
|
$user->saveOrFail();
|
||||||
|
|
||||||
|
return redirect("/gui/admin/users/".$id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ class AppController extends Controller
|
||||||
'url' => 'required|url'
|
'url' => 'required|url'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$app = App::createApp($request->input("name"), $request->input("description"), $request->input("url"), Auth::user());
|
$app = App::createApp($request->input("name"), htmlspecialchars($request->input("description")), $request->input("url"), Auth::user());
|
||||||
|
|
||||||
return "App created";
|
return "App created";
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ class AppController extends Controller
|
||||||
}
|
}
|
||||||
|
|
||||||
$app->name = $request->input("name");
|
$app->name = $request->input("name");
|
||||||
$app->description = $request->input("description");
|
$app->description = htmlspecialchars($request->input("description"));
|
||||||
$app->url = $request->input("url");
|
$app->url = $request->input("url");
|
||||||
$app->direct_url = $request->input("direct_url");
|
$app->direct_url = $request->input("direct_url");
|
||||||
|
|
||||||
|
|
|
@ -1,32 +0,0 @@
|
||||||
<?php include(__DIR__."/../layout/top.php"); ?>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<h3>E-Mail adresses</h3>
|
|
||||||
<table class="table">
|
|
||||||
<tr>
|
|
||||||
<th>User ID</th>
|
|
||||||
<th>Mail</th>
|
|
||||||
<th>Actions</th>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
foreach($mails as $mail) {
|
|
||||||
?>
|
|
||||||
<tr>
|
|
||||||
<td><?php echo $mail->user_id; ?></td>
|
|
||||||
<td><?php echo $mail->mail; ?></td>
|
|
||||||
<td>
|
|
||||||
<?php
|
|
||||||
if($mail->status == "waiting") {
|
|
||||||
echo '<a href="/gui/mailValidation/'.$mail->id.'/'.$mail->validation_code.'" class="btn btn-danger btn-sm">Aktivieren</a>';
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<?php
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<?php include(__DIR__."/../layout/bottom.php"); ?>
|
|
54
resources/views/admin/user_details.php
Normal file
54
resources/views/admin/user_details.php
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
<?php include(__DIR__."/../layout/top.php"); ?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h3>Users</h3>
|
||||||
|
<form method="post">
|
||||||
|
<table class="table">
|
||||||
|
<tr>
|
||||||
|
<th>Username</th>
|
||||||
|
<td><input name="username" value="<?php echo $editUser->username; ?>" class="form-control"></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Primary Mail</th>
|
||||||
|
<td><input name="" value="<?php echo $editUser->getMail(); ?>" class="form-control" disabled></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Developer</th>
|
||||||
|
<td><input name="developer" type="checkbox" <?php if($editUser->developer) { echo 'checked'; } ?>></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Admin</th>
|
||||||
|
<td><input name="admin" type="checkbox" <?php if($editUser->admin) { echo 'checked'; } ?>></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<input type="submit" value="Save" class="btn btn-warning">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<h4>Mails</h4>
|
||||||
|
<table class="table">
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Mail</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
foreach($mails as $mail) {
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $mail->id; ?></td>
|
||||||
|
<td><?php echo $mail->mail; ?></td>
|
||||||
|
<td><?php echo $mail->status ?></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
if($mail->status == "waiting") {
|
||||||
|
echo '<a href="/gui/mailValidation/'.$mail->id.'/'.$mail->validation_code.'" class="btn btn-danger btn-sm">Aktivieren</a>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php } ?>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php include(__DIR__."/../layout/bottom.php"); ?>
|
49
resources/views/admin/user_list.php
Normal file
49
resources/views/admin/user_list.php
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?php include(__DIR__."/../layout/top.php"); ?>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h3>Users</h3>
|
||||||
|
<table class="table">
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Username</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Primary Mail</th>
|
||||||
|
<th>Flags</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
foreach($users as $user) {
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $user->id; ?></td>
|
||||||
|
<td><?php echo $user->username; ?></td>
|
||||||
|
<td><?php echo $user->status; ?></td>
|
||||||
|
<td><?php echo $user->getMail(); ?></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
if($user->developer) {
|
||||||
|
echo '<i class="fas fa-laptop-code"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
if($user->admin) {
|
||||||
|
echo '<i class="fas fa-user-shield"></i>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td><a href="/gui/admin/users/<?php echo $user->id; ?>" class="btn btn-warning btn-sm">Edit</a> </td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
Flags:<br>
|
||||||
|
<i class="fas fa-user-shield"></i> = Admin<br>
|
||||||
|
<i class="fas fa-laptop-code"></i> = Developer
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php include(__DIR__."/../layout/bottom.php"); ?>
|
|
@ -54,12 +54,11 @@
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
<a class="dropdown-item" href="/gui/admin/settings">Settings</a>
|
<a class="dropdown-item" href="/gui/admin/settings">Settings</a>
|
||||||
<a class="dropdown-item disabled" href="#">Users</a>
|
<a class="dropdown-item" href="/gui/admin/users">Users</a>
|
||||||
<a class="dropdown-item" href="/gui/admin/apps">Apps</a>
|
<a class="dropdown-item" href="/gui/admin/apps">Apps</a>
|
||||||
<?php if($settingsArray["invites"]) {
|
<?php if($settingsArray["invites"]) {
|
||||||
echo '<a class="dropdown-item" href="/gui/admin/invites">Invites</a>';
|
echo '<a class="dropdown-item" href="/gui/admin/invites">Invites</a>';
|
||||||
}?>
|
}?>
|
||||||
<a class="dropdown-item" href="/gui/admin/mails">E-Mail Adressen</a>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
|
@ -15,6 +15,22 @@ $router->get('/', ['middleware' => 'gui', 'uses' => 'GUI\PublicController@index'
|
||||||
$router->get('/api/v4/user', ['uses' => 'oAuthController@getUserTMP']);
|
$router->get('/api/v4/user', ['uses' => 'oAuthController@getUserTMP']);
|
||||||
$router->get('/api/v4/groups', ['uses' => 'oAuthController@getGroupsTMP']);
|
$router->get('/api/v4/groups', ['uses' => 'oAuthController@getGroupsTMP']);
|
||||||
|
|
||||||
|
//Gitlab like oauth
|
||||||
|
$router->group(['prefix' => 'gitlab', 'middleware' => 'gui'], function () use ($router) {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
//Oauth URLS
|
||||||
|
$router->group(['prefix' => 'oauth'], function () use ($router) {
|
||||||
|
$router->get("/authorize", ['middleware' => 'gui', 'uses' => 'oAuthController@authorizeView']);
|
||||||
|
$router->post("/authorize", ['middleware' => 'gui', 'uses' => 'oAuthController@authorizeDo']);
|
||||||
|
$router->post("/token", ['uses' => 'oAuthController@token']);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//Internal API
|
||||||
|
$router->group(['prefix' => 'api'], function () use ($router) {
|
||||||
|
});
|
||||||
|
|
||||||
$router->group(['prefix' => 'gui', 'middleware' => 'gui'], function () use ($router) {
|
$router->group(['prefix' => 'gui', 'middleware' => 'gui'], function () use ($router) {
|
||||||
$router->get('/register', ['uses' => 'GUI\AccountController@registerView']);
|
$router->get('/register', ['uses' => 'GUI\AccountController@registerView']);
|
||||||
|
@ -36,7 +52,6 @@ $router->group(['prefix' => 'gui', 'middleware' => 'gui'], function () use ($rou
|
||||||
|
|
||||||
|
|
||||||
//Admin
|
//Admin
|
||||||
$router->get("/admin/mails", ['uses' => 'GUI\AdminController@listMails']);
|
|
||||||
$router->get("/admin/settings", ['uses' => 'GUI\AdminController@settingsView']);
|
$router->get("/admin/settings", ['uses' => 'GUI\AdminController@settingsView']);
|
||||||
$router->post("/admin/settings", ["uses" => "GUI\AdminController@saveSettings"]);
|
$router->post("/admin/settings", ["uses" => "GUI\AdminController@saveSettings"]);
|
||||||
$router->get("/admin/apps", ["uses" => "GUI\AdminController@appList"]);
|
$router->get("/admin/apps", ["uses" => "GUI\AdminController@appList"]);
|
||||||
|
@ -45,6 +60,11 @@ $router->group(['prefix' => 'gui', 'middleware' => 'gui'], function () use ($rou
|
||||||
$router->get("/admin/invites", ["uses" => "GUI\AdminController@inviteView"]);
|
$router->get("/admin/invites", ["uses" => "GUI\AdminController@inviteView"]);
|
||||||
$router->get("/admin/invites/new", ["uses" => "GUI\AdminController@inviteNewView"]);
|
$router->get("/admin/invites/new", ["uses" => "GUI\AdminController@inviteNewView"]);
|
||||||
$router->post("/admin/invites/new", ["uses" => "GUI\AdminController@inviteNew"]);
|
$router->post("/admin/invites/new", ["uses" => "GUI\AdminController@inviteNew"]);
|
||||||
|
$router->get("/admin/users", ["uses" => 'GUI\AdminController@listUser']);
|
||||||
|
$router->get("/admin/users/{id}", ["uses" => 'GUI\AdminController@userDetails']);
|
||||||
|
$router->post("/admin/users/{id}", ["uses" => 'GUI\AdminController@saveUserDetails']);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$router->get('user/profile', function () {
|
$router->get('user/profile', function () {
|
||||||
// Uses Auth Middleware
|
// Uses Auth Middleware
|
||||||
|
@ -58,8 +78,3 @@ $router->group(['prefix' => 'gui', 'middleware' => 'gui'], function () use ($rou
|
||||||
});*/
|
});*/
|
||||||
|
|
||||||
|
|
||||||
$router->group(['prefix' => 'oauth'], function () use ($router) {
|
|
||||||
$router->get("/authorize", ['middleware' => 'gui', 'uses' => 'oAuthController@authorizeView']);
|
|
||||||
$router->post("/authorize", ['middleware' => 'gui', 'uses' => 'oAuthController@authorizeDo']);
|
|
||||||
$router->post("/token", ['uses' => 'oAuthController@token']);
|
|
||||||
});
|
|
||||||
|
|
Reference in a new issue