public function store(\Illuminate\Http\Request $request) { /*Validação de campos - request*/ $this->validate($request, ['name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6', 'empresa' => 'required', 'grupo' => 'required']); $image = $request->file('caminhologo'); //Pega imagem $input = $request->except(array('_token', 'ativo')); //não levar o token //----------------------Grava novo usuario (Tabela USERS) $dados = new users(); $dados->name = $input['name']; $dados->email = $input['email']; $dados->confirmed = 1; //Se for criado usuario pelo usuario. $dados->password = bcrypt($input['password']); if ($image) { $dados->path_foto = $image->getClientOriginalName(); } $dados->save(); //----------------------FIM - Grava novo usuario (Tabela USERS) //-----------------Pega dados do usuarios admin (id da empresa e cliente cloud) $usuario_master = usuario::find(Auth::user()->id); //-----------------Cria registro na tabela usuarios para associar com a tabela users $usuarios = new usuario(); $usuarios->id = $dados->id; //id recem cadastrado na tabela users $usuarios->empresas_id = $input['empresa']; //$usuarios->confirmed = 1; //Se for criado usuario pelo usuario. $usuarios->empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id']; if ($input['sera_admin'] == 1) { //Se este for de outra empresa, cria como MASTER //if ($input['empresa']!=$this->dados_login->empresas_id) //{ // $usuarios->master = 1; //MASTER tem acesso total e nao pode ser excluido //} else //{ // $usuarios->master = 0; // } } else { $usuarios->master = 0; } $usuarios->admin = $input['sera_admin']; $usuarios->save(); //-----------------FIM - Cria registro na tabela usuarios para associar com a tabela users //Se usuário master estiver criando um admin para outras igrejas/instituições, cria um usuario como admin. if ($input['sera_admin'] == 1) { //Cria o novo grupo somente se o usuário for pertencer a outra empresa //Caso seja da mesma empresa associa ao grupo existente if ($input['empresa'] != $this->dados_login->empresas_id) { //----------------------------------Cria grupo padrão Administrador (Se já não existir) //A tabela grupos, dispara a triiger de INSERT e chama a spCriarPermissoesPadrao(NEW.id) que cria as permissoes padrao para o Administrador $grupo_padrao = \App\Models\grupos::firstOrCreate(['nome' => 'Administrador', 'empresas_id' => $input['empresa'], 'empresas_clientes_cloud_id' => $usuario_master['empresas_clientes_cloud_id'], 'default' => '1']); //----------------------------------FIM - Cria grupo padrão Administrador //------------------------------------Grava usuario e grupo //Usuario Admin com grupo padrão admin (com todas permissões) $usuarios_grupo = new \App\Models\usuarios_grupo(); $usuarios_grupo->usuarios_id = $dados->id; $usuarios_grupo->usuarios_empresas_id = $input['empresa']; $usuarios_grupo->usuarios_empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id']; $usuarios_grupo->grupos_id = $grupo_padrao->id; $usuarios_grupo->save(); //------------------------------------FIM Grava usuario e grupo } else { //Grava Grupo que o usuário iŕa pertencer $grupo_usuario = new \App\Models\usuarios_grupo(); $grupo_usuario->usuarios_id = $dados->id; $grupo_usuario->usuarios_empresas_id = $input['empresa']; $grupo_usuario->usuarios_empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id']; $grupo_usuario->grupos_id = $input['grupo']; $grupo_usuario->save(); } } else { //Grava Grupo que o usuário iŕa pertencer $grupo_usuario = new \App\Models\usuarios_grupo(); $grupo_usuario->usuarios_id = $dados->id; $grupo_usuario->usuarios_empresas_id = $input['empresa']; $grupo_usuario->usuarios_empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id']; $grupo_usuario->grupos_id = $input['grupo']; $grupo_usuario->save(); } //----------------------------------Foto do usuário if ($image) { /*Regras validação imagem*/ $rules = array('image' => 'image', 'image' => array('mimes:jpeg,jpg,png', 'max:200px')); // Validar regras $validator = Validator::make([$image], $rules); // Check to see if validation fails or passes if ($validator->fails()) { dd($validator); } else { $destinationPath = base_path() . '/public/images/users'; //caminho onde será gravado if (!$image->move($destinationPath, $image->getClientOriginalName())) { return $this->errors(['message' => 'Erro ao salvar imagem.', 'code' => 400]); } } } //----------------------------------FIM - Foto do usuário \Session::flash('flash_message', 'Dados Atualizados com Sucesso!!!'); return redirect('usuarios'); }