public static function permissaoPerfil($idUser, $funcaoPermissao) { $idFuncao = Acesso::getFuncao($funcaoPermissao); $perfil = PerfilUser::where('id_user', $idUser)->first(); $permissaoPerfil = collect(PermissaoPerfil::where('id_funcao', $idFuncao)->where('id_perfil', $perfil->id_perfil)->get())->first(); if (empty($permissaoPerfil)) { return false; } elseif ($permissaoPerfil->id_role == 2) { return true; } elseif ($permissaoPerfil->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(); } }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { try { // destruindo vinculo entre as permissões e o perfil $permissao = PermissaoPerfil::where('id_perfil', $id)->get(); foreach ($permissao as $perm) { PermissaoPerfil::destroy($perm->id_permissao_perfil); } // destruindo vinculo entre perfil e usuário $peruser = PerfilUser::where('id_perfil', $id)->get(); foreach ($peruser as $perf) { PerfilUser::destroy($perf->id_perfil_user); } // destruindo o perfil Perfil::destroy($id); session()->flash('flash_message', 'Registro apagado com sucesso!'); } catch (\Exception $e) { LogR::exception('destroy perfis', $e); session()->flash('flash_message', 'Ops!! Ocorreu algum problema!. ' . $e->getMessage()); } return Redirect::back(); }