fixed bug password wouldn't get hashed when changed through admin/mod view, added so group 1 test can be seen by every mod
This commit is contained in:
parent
6511f3a248
commit
12f6d58099
9 changed files with 87 additions and 27 deletions
app
resources/views
routes
|
@ -5,6 +5,8 @@ namespace App\Http\Controllers;
|
|||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Http\Requests;
|
||||
use App\Group;
|
||||
use App\Test;
|
||||
|
||||
class ModeratorController extends Controller
|
||||
{
|
||||
|
@ -29,4 +31,22 @@ class ModeratorController extends Controller
|
|||
$tests = Auth::user()->group->getGroupTests();
|
||||
return view('tests.showall', compact('tests'));
|
||||
}
|
||||
|
||||
public function showGroups()
|
||||
{
|
||||
$groups = Group::find([1, Auth::user()->group_id]);
|
||||
return view('admin.groups', compact("groups"));
|
||||
}
|
||||
|
||||
public function showAllTests()
|
||||
{
|
||||
$tests = Test::where("group_id", 1)->orWhere("group_id", Auth::user()->group_id)->get();
|
||||
return view('tests.showall', compact("tests"));
|
||||
}
|
||||
|
||||
public function showGroupTests(Group $group)
|
||||
{
|
||||
$tests = $group->tests;
|
||||
return view('tests.showall', compact('tests'));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ class StoreUser extends FormRequest
|
|||
"password" => "required|alpha_dash|min:8",
|
||||
"group_id" => "integer|exists:groups,id|min:1",
|
||||
"enabled" => "required|boolean",
|
||||
"access_level" => "integer|min:1",
|
||||
"access_level" => "integer|min:1|max:3",
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
27
app/User.php
27
app/User.php
|
@ -84,15 +84,14 @@ class User extends Authenticatable
|
|||
public function addUser($request)
|
||||
{
|
||||
$this->name = $request["name"];
|
||||
$this->email = $request["email"];
|
||||
$this->email = trim($request["email"]);
|
||||
$this->passwordHash($request["password"]);
|
||||
if ($request["enabled"]) {
|
||||
$this->enabled = $request["enabled"];
|
||||
}
|
||||
$this->enabled = $request["enabled"];
|
||||
if (Auth::user()->isModerator()) {
|
||||
Group::find(Auth::user()->group_id)->tests()->save($this);
|
||||
Group::find(Auth::user()->group_id)->save($this);
|
||||
return true;
|
||||
}
|
||||
$this->access_level = $request["access_level"];
|
||||
$this->group_id = $request["group_id"];
|
||||
$this->save();
|
||||
return true;
|
||||
|
@ -105,7 +104,20 @@ class User extends Authenticatable
|
|||
*/
|
||||
public function updateUser($request)
|
||||
{
|
||||
$this->update($request);
|
||||
$this->name = $request["name"];
|
||||
$this->email = trim($request["email"]);
|
||||
$this->enabled = $request["enabled"];
|
||||
|
||||
if ($request["password"]) {
|
||||
$this->passwordHash($request["password"]);
|
||||
}
|
||||
|
||||
if (Auth::user()->isAdministrator()) {
|
||||
$this->access_level = $request["access_level"];
|
||||
$this->group_id = $request["group_id"];
|
||||
}
|
||||
$this->update();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -126,8 +138,7 @@ class User extends Authenticatable
|
|||
*/
|
||||
public function updateEmail($email)
|
||||
{
|
||||
$email = trim($email);
|
||||
$this->email = $email;
|
||||
$this->email = trim($email);
|
||||
$this->update();
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<td>Show All</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
@if (request()->path() == "admin/tests")
|
||||
@if (request()->path() === "admin/tests" OR request()->path() === "mod/tests")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/tests/all">Show</button>
|
||||
@elseif (request()->path() == "admin/users")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/users/all">Show</button>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<td>{{ $group->name }}</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
@if (request()->path() == "admin/tests")
|
||||
@if (request()->path() == "admin/tests" OR request()->path() === "mod/tests")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/tests/group/{{ $group->id }}">Show</button>
|
||||
@elseif (request()->path() == "admin/users")
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/users/group/{{ $group->id }}">Show</button>
|
||||
|
|
|
@ -7,10 +7,12 @@
|
|||
<div class="panel panel-default">
|
||||
<div class="panel-heading">Test</div>
|
||||
<div class="panel-body">
|
||||
<form method="get">
|
||||
<button class="btn btn-danger pull-right" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/delete">Delete</button>
|
||||
<button class="btn btn-default pull-right" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/edit">Edit</button>
|
||||
</form>
|
||||
@if (Auth::user()->isAdministrator() || (Auth::user()->isModerator() AND $test->group_id === Auth::user()->group_id))
|
||||
<form method="get">
|
||||
<button class="btn btn-danger pull-right" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/delete">Delete</button>
|
||||
<button class="btn btn-default pull-right" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/edit">Edit</button>
|
||||
</form>
|
||||
@endif
|
||||
<strong>Title:</strong><br>
|
||||
{{ $test->title }}
|
||||
<br>
|
||||
|
@ -32,9 +34,11 @@
|
|||
<th>#</th>
|
||||
<th>Question</th>
|
||||
<th>
|
||||
<form method="get">
|
||||
<button class="btn btn-sm btn-primary pull-right" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/question">Add Question</button>
|
||||
</form>
|
||||
@if (Auth::user()->isAdministrator() || (Auth::user()->isModerator() AND $test->group_id === Auth::user()->group_id))
|
||||
<form method="get">
|
||||
<button class="btn btn-sm btn-primary pull-right" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/question">Add Question</button>
|
||||
</form>
|
||||
@endif
|
||||
</th>
|
||||
</tr>
|
||||
@foreach ($questions as $question)
|
||||
|
@ -42,10 +46,12 @@
|
|||
<td>1</td>
|
||||
<td>{{ $question->title }}</td>
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/questions/{{ $question->id }}/edit">Edit</button>
|
||||
<button class="btn btn-sm btn-danger pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/questions/{{ $question->id }}/delete">Delete</button>
|
||||
</form>
|
||||
@if (Auth::user()->isAdministrator() || (Auth::user()->isModerator() AND $test->group_id === Auth::user()->group_id))
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/questions/{{ $question->id }}/edit">Edit</button>
|
||||
<button class="btn btn-sm btn-danger pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/questions/{{ $question->id }}/delete">Delete</button>
|
||||
</form>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
|
|
@ -20,14 +20,19 @@
|
|||
@foreach ($tests as $test)
|
||||
<tr>
|
||||
<td>{{ $test->id }}</td>
|
||||
<td>{{ $test->title }}</td>
|
||||
@if (Auth::user()->access_level == 2 AND $test->group_id == Auth::user()->group_id OR Auth::user()->access_level == 3)
|
||||
<td><a href="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}">{{ $test->title }}</a></td>
|
||||
@if (Auth::user()->isAdministrator() || (Auth::user()->isModerator() AND $test->group_id === Auth::user()->group_id))
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-default pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}">Edit</button>
|
||||
<button class="btn btn-sm btn-danger pull-left" formaction="/{{ Auth::user()->getAdminPath() }}/tests/{{ $test->id }}/delete">Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
@else
|
||||
<td>
|
||||
<form method="get" class="pull-right">
|
||||
<button class="btn btn-sm btn-danger pull-left" formaction="#" disabled>Delete</button>
|
||||
</form>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
@endforeach
|
||||
|
|
|
@ -36,11 +36,19 @@
|
|||
</select>
|
||||
</div>
|
||||
@if (Auth::user()->isAdministrator())
|
||||
<div class="form-group">
|
||||
<label>Access Level</label>
|
||||
<select name="access_level" class="form-control">
|
||||
<option value="1" @if ($user->access_level == 1) selected @endif>User</option>
|
||||
<option value="2" @if ($user->access_level == 2) selected @endif>Moderator</option>
|
||||
<option value="3" @if ($user->access_level == 3) selected @endif>Administrator</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Group</label>
|
||||
<select class="form-control" name="group_id">
|
||||
@foreach ($groups as $group)
|
||||
<option value="{{ $group->id }}" @if ($group->id == $user->id) selected @endif>{{ $group->name }}</option>
|
||||
<option value="{{ $group->id }}" @if ($group->id === $user->group_id) selected @endif>{{ $group->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
|
|
@ -36,6 +36,14 @@
|
|||
</select>
|
||||
</div>
|
||||
@if (Auth::user()->isAdministrator())
|
||||
<div class="form-group">
|
||||
<label>Access Level</label>
|
||||
<select name="access_level" class="form-control">
|
||||
<option value="1">User</option>
|
||||
<option value="2">Moderator</option>
|
||||
<option value="3">Administrator</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Group</label>
|
||||
<select class="form-control" name="group_id">
|
||||
|
|
|
@ -39,7 +39,9 @@ Route::group(['prefix' => 'test'], function () {
|
|||
Route::group(['prefix' => 'mod', 'middleware' => 'is.mod'], function () {
|
||||
|
||||
Route::get('/', 'ModeratorController@index');
|
||||
Route::get('/tests', 'ModeratorController@showTests');
|
||||
Route::get('/tests', 'ModeratorController@showGroups');
|
||||
Route::get('/tests/all', 'ModeratorController@ShowAllTests');
|
||||
Route::get('/tests/group/{group}', 'ModeratorController@showGroupTests');
|
||||
Route::get('/tests/new', 'AdministrativeTestController@newTest');
|
||||
Route::post('/tests/new', 'AdministrativeTestController@addTest');
|
||||
Route::get('/tests/{test}', 'AdministrativeTestController@showTest');
|
||||
|
|
Reference in a new issue