public static function permissaoUser($idUser, $funcaoPermissao) { $idFuncao = Acesso::getFuncao($funcaoPermissao); $permissaoUser = collect(PermissaoUser::where('id_funcao', $idFuncao)->where('id_user', $idUser)->get())->first(); if (empty($permissaoUser->id_role)) { return false; } elseif ($permissaoUser->id_role == 1) { return 'perfil'; } elseif ($permissaoUser->id_role == 2) { return 'user'; } elseif ($permissaoUser->id_role == 3) { return false; } }
/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update(Request $request, $id) { $validacao = Validator::make($request->all(), ['name' => 'required|string', 'email' => 'required|email', 'password' => 'string', 'id_perfil' => 'required|integer']); if ($validacao->fails()) { return redirect('admin/configuracoes/usuarios/editar/' . $id)->withErrors($validacao)->withInput(); } else { try { $user = User::find($id); $user->name = $request->name; $user->email = $request->email; if (!empty($request->password)) { $user->password = bcrypt($request->password); } $user->save(); // gravando as permissões específicas do usuário $funcoes = Funcao::all(); $cont = 1; foreach ($funcoes as $funcao) { try { $permissao = PermissaoUser::where('id_funcao', $funcao->id_funcao)->where('id_user', $user->id)->first(); $permissao->id_role = $request->{$cont}; $permissao->save(); $cont++; } catch (\Exception $e) { LogR::exception($permissao, $e); session()->flash('flash_message', 'Ops!! Ocorreu algum problema!. ' . $e->getMessage()); } } try { // gravando o vinculo do usuário com o perfil selecionado $perfilUser = PerfilUser::where('id_user', $id)->first(); $perfilUser->id_perfil = $request->id_perfil; $perfilUser->save(); } catch (\Exception $e) { LogR::exception($perfilUser, $e); session()->flash('flash_message', 'Ops!! Ocorreu algum problema!. ' . $e->getMessage()); } session()->flash('flash_message', 'Registro atualizado com sucesso!'); } catch (\Exception $e) { LogR::exception($user, $e); session()->flash('flash_message', 'Ops!! Ocorreu algum problema!. ' . $e->getMessage()); } return Redirect::back(); } }