update_21.09.23

This commit is contained in:
NW
2023-09-21 15:20:06 +01:00
parent 046eddc957
commit 0de0459ce1
25 changed files with 2454 additions and 2091 deletions

View File

@@ -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');