update_21.09.23
This commit is contained in:
@@ -2,12 +2,14 @@
|
||||
|
||||
namespace App\Http\Controllers\Superadmin;
|
||||
|
||||
use App\Enums\User\RoleEnum;
|
||||
use App\Form;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Notifications\UserNotification;
|
||||
use App\Package;
|
||||
use App\User;
|
||||
use App\UserForm;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Request;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
|
||||
@@ -20,12 +22,20 @@ class ManageUsersController extends Controller
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
if (! auth()->user()->can('superadmin')) {
|
||||
if (!auth()->user()->hasRole([RoleEnum::ADMIN->value, RoleEnum::SUPERVISOR->value], 'web')) {
|
||||
abort(403, 'Unauthorized action.');
|
||||
}
|
||||
|
||||
if ($request->ajax()) {
|
||||
$users = User::select('name', 'email', 'is_active', 'created_at', 'id');
|
||||
$supervisor = User::role(RoleEnum::SUPERVISOR->value)->first();
|
||||
$users = User::query()
|
||||
->when(
|
||||
!auth()->user()->hasRole(RoleEnum::SUPERVISOR->value),
|
||||
function (Builder $builder) use ($supervisor) {
|
||||
$builder->whereNotIn('id', [$supervisor->id]);
|
||||
}
|
||||
)
|
||||
->select(['id', 'name', 'email', 'is_active', 'created_at']);
|
||||
|
||||
if (! empty($request->input('status'))) {
|
||||
$is_active = ($request->input('status') == 'active') ? 1 : 0;
|
||||
@@ -52,9 +62,11 @@ class ManageUsersController extends Controller
|
||||
<a class="btn btn-link btn-icon btn-sm text-info edit_user pointer" data-href="{{action([\App\Http\Controllers\Superadmin\ManageUsersController::class, "edit"], [$id])}}" title="@lang("messages.edit")">
|
||||
<i class="fas fa-edit font_icon_size"></i>
|
||||
</a>
|
||||
<a class="btn btn-link btn-icon btn-sm text-info upgrade_account pointer" data-href="{{action([\App\Http\Controllers\Superadmin\ManageUsersController::class, "upgrade"], [$id])}}" title="@lang("messages.edit")">
|
||||
<i class="fas fa-money-check font_icon_size"></i>
|
||||
</a>
|
||||
@if(1 === 0)
|
||||
<a class="btn btn-link btn-icon btn-sm text-info upgrade_account pointer" data-href="{{action([\App\Http\Controllers\Superadmin\ManageUsersController::class, "upgrade"], [$id])}}" title="@lang("messages.edit")">
|
||||
<i class="fas fa-money-check font_icon_size"></i>
|
||||
</a>
|
||||
@endif
|
||||
<a class="btn btn-link btn-icon btn-sm text-danger delete_user pointer" data-href="{{action([\App\Http\Controllers\Superadmin\ManageUsersController::class, "destroy"], [$id])}}" title="@lang("messages.delete")">
|
||||
<i class="fas fa-trash-alt font_icon_size"></i>
|
||||
</a>
|
||||
@@ -104,7 +116,6 @@ class ManageUsersController extends Controller
|
||||
$user = request()->user();
|
||||
|
||||
$forms = Form::where('is_template', 0)
|
||||
->where('created_by', $user->id)
|
||||
->pluck('name', 'id')
|
||||
->toArray();
|
||||
|
||||
@@ -126,7 +137,7 @@ class ManageUsersController extends Controller
|
||||
return $this->notAllowedInDemo();
|
||||
}
|
||||
|
||||
$input = $request->only('name', 'email', 'is_active', 'can_create_form', 'show_form_response_user', 'show_edit_buttons_form');
|
||||
$input = $request->only('name', 'email', 'is_active', 'is_admin', 'can_create_form');
|
||||
|
||||
if (! empty($request->input('password'))) {
|
||||
$input['password'] = bcrypt($request->input('password'));
|
||||
@@ -134,10 +145,14 @@ class ManageUsersController extends Controller
|
||||
|
||||
$input['is_active'] = ! empty($input['is_active']) ? 1 : 0;
|
||||
$input['can_create_form'] = ! empty($input['can_create_form']) ? 1 : 0;
|
||||
$input['show_form_response_user'] = ! empty($input['show_form_response_user']) ? 1 : 0;
|
||||
$input['show_edit_buttons_form'] = ! empty($input['show_edit_buttons_form']) ? 1 : 0;
|
||||
|
||||
$user = User::create($input);
|
||||
$user = User::query()->create($input);
|
||||
|
||||
if ($request->filled('is_admin')) {
|
||||
$user->assignRole(RoleEnum::ADMIN->value);
|
||||
} else {
|
||||
$user->assignRole(RoleEnum::USER->value);
|
||||
}
|
||||
|
||||
//save user forms (assgined)
|
||||
$permissions = $request->input('permissions');
|
||||
@@ -190,17 +205,26 @@ class ManageUsersController extends Controller
|
||||
if (request()->ajax()) {
|
||||
$user = User::findOrFail($id);
|
||||
|
||||
$logged_in_user = request()->user();
|
||||
if (auth()->user()->hasRole([RoleEnum::SUPERVISOR->value, RoleEnum::ADMIN->value])) {
|
||||
$forms = Form::where('is_template', 0)
|
||||
->pluck('name', 'id')
|
||||
->toArray();
|
||||
|
||||
$forms = Form::where('is_template', 0)
|
||||
->where('created_by', $logged_in_user->id)
|
||||
->pluck('name', 'id')
|
||||
->toArray();
|
||||
$assigned_forms = UserForm::with('form')
|
||||
->where('assigned_to', $id)
|
||||
->get();
|
||||
} else {
|
||||
$logged_in_user = request()->user();
|
||||
$forms = Form::where('is_template', 0)
|
||||
->where('created_by', $logged_in_user->id)
|
||||
->pluck('name', 'id')
|
||||
->toArray();
|
||||
|
||||
$assigned_forms = UserForm::with('form')
|
||||
->where('assigned_by', \Auth::id())
|
||||
->where('assigned_to', $id)
|
||||
->get();
|
||||
$assigned_forms = UserForm::with('form')
|
||||
->where('assigned_by', \Auth::id())
|
||||
->where('assigned_to', $id)
|
||||
->get();
|
||||
}
|
||||
|
||||
return view('superadmin.users.edit')
|
||||
->with(compact('user', 'forms', 'assigned_forms'));
|
||||
@@ -221,11 +245,9 @@ class ManageUsersController extends Controller
|
||||
return $this->notAllowedInDemo();
|
||||
}
|
||||
|
||||
$input = $request->only('name', 'email', 'is_active', 'can_create_form', 'show_form_response_user', 'show_edit_buttons_form');
|
||||
$input = $request->only('name', 'email', 'is_active', 'is_admin', 'can_create_form');
|
||||
$input['is_active'] = ! empty($input['is_active']) ? 1 : 0;
|
||||
$input['can_create_form'] = ! empty($input['can_create_form']) ? 1 : 0;
|
||||
$input['show_form_response_user'] = ! empty($input['show_form_response_user']) ? 1 : 0;
|
||||
$input['show_edit_buttons_form'] = ! empty($input['show_edit_buttons_form']) ? 1 : 0;
|
||||
|
||||
if (! empty($request->input('password'))) {
|
||||
$input['password'] = bcrypt($request->input('password'));
|
||||
@@ -234,6 +256,14 @@ class ManageUsersController extends Controller
|
||||
$user = User::findOrFail($id);
|
||||
$user->update($input);
|
||||
|
||||
if ($request->filled('is_admin') && $request->input('is_admin') === 'on') {
|
||||
$user->assignRole(RoleEnum::ADMIN->value);
|
||||
$user->removeRole(RoleEnum::USER->value);
|
||||
} else {
|
||||
$user->removeRole(RoleEnum::ADMIN->value);
|
||||
$user->assignRole(RoleEnum::USER->value);
|
||||
}
|
||||
|
||||
//update user forms (assgined)
|
||||
$edit_permissions = $request->input('edit_permissions');
|
||||
$assgined_form_ids = $request->input('edit_assigned_form_id');
|
||||
|
||||
Reference in New Issue
Block a user