UnknownSec Bypass
403
:
/
var
/
www
/
html
/
lms_d5c35339adb3
/
app
/
Http
/
Controllers
/
Admin
/
Users
/ [
drwxr-xr-x
]
Menu
Upload
Mass depes
Mass delete
Terminal
Info server
About
name :
AdminUsersController.php
<?php namespace EstudioLMS\Http\Controllers\Admin\Users; use EstudioLMS\Base\ResponseBuilder; use EstudioLMS\Helpers\Helpers; use EstudioLMS\Http\Controllers\Controller; use EstudioLMS\Http\Requests\UserRequest; use EstudioLMS\Models\Auth\Role; use EstudioLMS\Repositories\Auth\UserRepository; use EstudioLMS\Repositories\Profile\ProfileAddressRepository; use EstudioLMS\Services\Saas\SaasUtilService; use File; use Illuminate\Contracts\Auth\Guard; use Illuminate\Http\Request; use Illuminate\Translation\Translator; use mjanssen\BreadcrumbsBundle\Breadcrumbs; use Storage; /** * Class AdminUsersController * @package EstudioLMS\Http\Controllers\Admin\Users */ class AdminUsersController extends Controller { /** * @var Guard */ private $auth; /** * @var Translator */ private $translator; /** * @var Breadcrumbs */ private $breadCrumb; /** * @var ResponseBuilder */ private $responseBuilder; /** * @var UserRepository */ private $userRepo; /** * @var Helpers */ private $helper; /** * @var ProfileAddressRepository */ private $profileAddressRepository; /** * @var Role */ private $role; /** * @var SaasUtilService */ private $saasUtilService; /** * @param Translator $translator * @param Breadcrumbs $breadCrumb * @param Helpers $helper * @param ResponseBuilder $responseBuilder * @param UserRepository $userRepo * @param Guard $auth * @param ProfileAddressRepository $profileAddressRepository * @param Role $role * @param SaasUtilService $saasUtilService */ public function __construct( Translator $translator, Breadcrumbs $breadCrumb, Helpers $helper, ResponseBuilder $responseBuilder, UserRepository $userRepo, Guard $auth, ProfileAddressRepository $profileAddressRepository, Role $role, SaasUtilService $saasUtilService ) { $this->middleware('admins'); $this->auth = $auth; $this->translator = $translator; $this->breadCrumb = $breadCrumb; $this->responseBuilder = $responseBuilder; $this->userRepo = $userRepo; $this->helper = $helper; $this->profileAddressRepository = $profileAddressRepository; $this->role = $role; $this->saasUtilService = $saasUtilService; } /** * Display a listing of the resource. * * @return mixed */ public function index() { $this->breadCrumb->addBreadcrumb('Dashboard', route('admin.index')); $this->breadCrumb->addBreadcrumb('Listagem de Usuários', route('admin.users.index')); $bread = $this->breadCrumb->generate(); $env = 'usersmanager'; $title = 'Gerenciar Usuários'; return view('admin.users.listusers', compact('bread', 'env', 'title')); } public function apiList() { $result = $this->userRepo->listAllUsers(); return $result; } /** * Show the form for creating a new resource. * * @param $type * @return Mixed */ public function createUser($type) { $this->breadCrumb->addBreadcrumb('Dashboard', route('admin.index')); $this->breadCrumb->addBreadcrumb('Listagem de Usuários', route('admin.users.index')); $this->breadCrumb->addBreadcrumb('Novo Usuário', route('admin.users.create.user', $type)); $bread = $this->breadCrumb->generate(); $env = 'usersmanager'; $view = ''; $title = 'Adicionar Novo Usuário'; $userTypes = Helpers::userTypes(); if ($type === 'A') : $roleId = $this->role->where('name', '=', 'admin')->first()->id; $view = 'admin.profile.admin_profile'; $customMessage = 'Novo Administrador <br> Todos os campos marcados com * são obrigatórios'; elseif ($type === 'S') : $roleId = $this->role->where('name', '=', 'student')->first()->id; $view = 'admin.users.student_profile'; $customMessage = 'Novo Aluno <br> Todos os campos marcados com * são obrigatórios'; elseif ($type === 'T') : $roleId = $this->role->where('name', '=', 'teacher')->first()->id; $view = 'admin.users.teacher_profile'; $customMessage = 'Novo Professor/Instrutor <br> Todos os campos marcados com * são obrigatórios'; else : abort(404); endif; $ufArr = Helpers::UFlist(); return view($view, compact('data'), compact('bread', 'env', 'type', 'roleId', 'customMessage', 'title', 'ufArr', 'userTypes')); } /** * Store a newly created resource in storage. * * @param UserRequest $request * @return mixed */ public function store(UserRequest $request) { $env = 'usersmanager'; $data = $request->all(); if (!empty($data['password'])) { $data['password'] = bcrypt($data['password']); } $downloadPicture = false; $fileName = ''; if ($request->hasFile('picture')) { if ($request->file('picture')->isValid()) { $destinationPath = public_path() . '/profiles/pictures/'; $fileName = uniqid(str_random(20)); $fileName = $fileName . '.' . $request->file('picture')->getClientOriginalExtension(); $request->file('picture')->move($destinationPath, $fileName); $downloadPicture = true; } } if ($downloadPicture) { $data['picture'] = $fileName; } $checkSoftDelete = $this->userRepo->withTrashed()->findWhere([['email', '=', $data['email']]])->first(); if ($checkSoftDelete) { $user = $this->userRepo->restore($checkSoftDelete['id']); $success = 'Usuário Restaurado'; $message = 'Dados do usuário restaurados'; } else { try { $created = $this->userRepo->create($data); $created->attachRole($data['role']); if ($role = '3' || $role = '2') { $data['address']['user_id'] = $created['id']; $data['address']['type'] = 1; $this->profileAddressRepository->updateOrCreate(['user_id' => $created['id']], $data['address']); } $success = 'Sucesso!'; $message = 'Dados incluídos com sucesso!'; } catch (\Exception $e) { $fail = 'Falha!'; $message = 'Erro: ' . $e->getMessage() . ' - Dados não incluídos!'; } } return redirect(route('admin.users.index')) ->with(compact('env', 'fail', 'success', 'message')); } /** * Display the specified resource. * * @param int $id * @return mixed */ public function show($id) { $data = $this->userRepo->with('address')->find($id); $this->breadCrumb->addBreadcrumb('Dashboard', route('admin.index')); $this->breadCrumb->addBreadcrumb('Listagem de Usuários', route('admin.users.index')); $env = 'usersmanager'; $userACL = $data->roles[0]->name; $roleId = $data->roles[0]->id; $title = 'Editar Usuário'; $userTypes = Helpers::userTypes(); if ($userACL === 'student') { $type = 'S'; $view = 'admin.users.student_profile'; $this->breadCrumb->addBreadcrumb('Dados do Usuário', route('admin.users.show', $data['id'])); } elseif ($userACL === 'teacher') { $type = 'T'; $view = 'admin.users.teacher_profile'; $this->breadCrumb->addBreadcrumb('Dados do Teacher', route('admin.users.show', $data['id'])); } elseif ($userACL === 'admin' || $userACL === 'owner' || $userACL === 'superadmin') { $userTypes = Helpers::userTypes(true); $type = 'A'; $view = 'admin.users.admin_profile'; $this->breadCrumb->addBreadcrumb('Dados do Administrador', route('admin.users.show', $data['id'])); } else { $type = null; $view = null; abort(404); } $bread = $this->breadCrumb->generate(); $customMessage = 'Visualização/Edição de Dados pelo Admin'; $ufArr = Helpers::UFlist(); return $this->responseBuilder->render($view, compact('data'), compact('bread', 'env', 'type', 'roleId', 'customMessage', 'title', 'ufArr', 'userTypes')); } /** * Update the specified resource in storage. * * @param int $id * @param UserRequest $request * @return mixed */ public function update($id, UserRequest $request) { $data = $request->all(); if (!empty($data['password'])) { $data['password'] = bcrypt($data['password']); } else { unset($data['password']); } if ($request->hasFile('picture')) { $data['picture'] = uniqid(str_random(20)) . '.' . $request->file('picture')->getClientOriginalExtension(); } else { unset($data['picture']); } try { $profile = $this->userRepo->find($id); $profile->fill($data); $data['address']['user_id'] = $profile['id']; $data['address']['type'] = 1; $profile_addr = $this->profileAddressRepository->findWhere([ [ 'user_id', '=', $profile['id'] ], [ 'type', '=', 1 ] ])->first(); if (!$profile_addr) { $data['address']['user_id'] = $profile['id']; $data['address']['type'] = 1; $this->profileAddressRepository->updateOrCreate(['user_id' => $profile['id']], $data['address']); $logAddr = null; } else { $profile_addr->fill($data['address']); $profile_addr->save(); } $profile->save(); $profile->roles()->sync([$data['role']]); $success = 'Sucesso!'; $message = 'Dados Atualizados com Sucesso!'; if ($request->hasFile('picture')) { if ($request->file('picture')->isValid()) { Storage::disk('profile')->put($data['picture'], File::get($request->file('picture'))); } } } catch (\Exception $e) { $fail = 'Falha!'; $message = 'Erro: ' . $e->getMessage() . ' - Dados não Atualizados!'; } $env = 'usersmanager'; return redirect(route('admin.users.index'))->with(compact('env', 'fail', 'success', 'message')); } /** * @param Request $request * @return array */ public function updateStatus(Request $request) { $data = $request->all(); $status = $data['status'] == 0 ? 1 : 0; $user = $this->userRepo->find($data['id']); $user['status'] = $status; $user->save(); $success = 'Sucesso!'; $message = 'Status alterado com sucesso! '; $ret = ['success' => $success, 'message' => $message, 'status' => $status]; return $ret; } /** * @param Request $request * @return array */ public function destroyUser(Request $request) { $data = $request->all(); $delUser = $this->userRepo->find($data['id']); $delUser->delete(); $success = 'Sucesso!'; $message = 'Usuário excluído com sucesso! '; $ret = ['success' => $success, 'message' => $message]; return $ret; } /** * @param $id * @param UserRequest $request * @return \Illuminate\Http\RedirectResponse */ public function updateAdmin($id, UserRequest $request) { $data = $request->all(); $newPwd = ''; if (!empty($data['password'])) { $newPwd = $data['password']; $data['password'] = bcrypt($data['password']); } else { unset($data['password']); } if ($request->hasFile('picture')) { $data['picture'] = uniqid(str_random(20)) . '.' . $request->file('picture')->getClientOriginalExtension(); } else { unset($data['picture']); } try { $profile = $this->userRepo->find($id); $profile->fill($data); $profile->save(); $success = 'Sucesso!'; $message = 'Dados Atualizados com Sucesso!'; if (!empty($newPwd) && $data['role'] == 5) { $data['password'] = $newPwd; $this->saasUtilService->changeCPanelPWD($data); $this->saasUtilService->changePanelCustomerPWD($data); } if ($request->hasFile('picture')) { if ($request->file('picture')->isValid()) { Storage::disk('profile')->put($data['picture'], File::get($request->file('picture'))); } } } catch (\Exception $e) { $fail = 'Falha!'; $message = 'Erro: ' . $e->getMessage() . ' - Dados não Atualizados!'; } $env = 'environment'; return redirect()->route('admin.users.index', $this->auth->user()['id']) ->with(compact('env', 'fail', 'success', 'message')); } public function restoreUser(Request $request) { $data = $request->all(); $user = $this->userRepo->withTrashed()->find($data['id']); $user->deleted_at = null; $user->save(); $success = 'Sucesso!'; $message = 'Usuário restaurado com sucesso! '; $ret = ['success' => $success, 'message' => $message]; return $ret; } }
Copyright © 2026 - UnknownSec