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'); }
public function store(\Illuminate\Http\Request $request) { //Validação de campos - request $this->validate($request, ['razaosocial' => 'required|max:255:min:3', 'foneprincipal' => 'required|min:8', 'emailprincipal' => 'email', 'emailsecundario' => 'email', 'cnpj' => 'cnpj']); //---------------------------------Cadastro do cliente cloud $image = $request->file('caminhologo'); $input = $request->except(array('_token', 'ativo')); //não levar o token $clientes_cloud = new clientescloud(); $clientes_cloud->razaosocial = $input['razaosocial']; $clientes_cloud->nomefantasia = $input['nomefantasia']; $clientes_cloud->cnpj = preg_replace("/[^0-9]/", '', $input['cnpj']); $clientes_cloud->inscricaoestadual = $input['inscricaoestadual']; $clientes_cloud->endereco = $input['endereco']; $clientes_cloud->numero = $input['numero']; $clientes_cloud->bairro = $input['bairro']; $clientes_cloud->cep = $input['cep']; $clientes_cloud->complemento = $input['complemento']; $clientes_cloud->cidade = $input['cidade']; $clientes_cloud->estado = $input['estado']; $clientes_cloud->foneprincipal = preg_replace("/[^0-9]/", '', $input['foneprincipal']); $clientes_cloud->fonesecundario = preg_replace("/[^0-9]/", '', $input['fonesecundario']); $clientes_cloud->emailprincipal = $input['emailprincipal']; $clientes_cloud->emailsecundario = $input['emailsecundario']; $clientes_cloud->nomecontato = $input['nomecontato']; $clientes_cloud->celular = $input['celular']; $clientes_cloud->ativo = 'S'; //Sempre ativo quando cadastrar ? $clientes_cloud->website = $input['website']; if ($image) { $clientes_cloud->caminhologo = $image->getClientOriginalName(); } $clientes_cloud->save(); //--------------------------------- FIM - Cadastro do cliente cloud //Busca id da tabela empresas vinculada a tabela clientes_cloud $id_empresas = empresas::where('clientes_cloud_id', $clientes_cloud->id)->select('id')->first(); /*------------------------- Vinculo tabela users com usuarios * * Grava o id (users, clientes_cloud e empresas) na tabela usuarios (id, empresas_clientes_cloud_id, empresas_id) */ $usuarios = new usuario(); $usuarios->id = Auth::user()->id; //id do usuário logado (tabela users) $usuarios->empresas_id = $id_empresas['id']; //Pegar ID do registro recém criado (clientes_cloud) $usuarios->empresas_clientes_cloud_id = $clientes_cloud->id; $usuarios->master = 1; //Criada a empresa a primeira vez, o usuario que cadastrou será o master e nao podera ser removido $usuarios->admin = 1; //O Master também é ADMIN $usuarios->save(); //------------------------- FIM - Vinculo tabela users com usuarios //---------------------------Upload da imagem 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/clients'; //caminho onde será gravado if (!$image->move($destinationPath, $image->getClientOriginalName())) { return $this->errors(['message' => 'Erro ao salvar imagem.', 'code' => 400]); } } } //---------------------------FIM - Upload da imagem //----------------------------------Cria grupo padrão Administrador //A tabela grupos, dispara a triiger de INSERT e chama a spCriarPermissoesPadrao(NEW.id) que cria as permissoes padrao para o Administrador $grupo_padrao = new \App\Models\grupos(); $grupo_padrao->nome = "Administrador"; $grupo_padrao->empresas_id = $id_empresas['id']; $grupo_padrao->empresas_clientes_cloud_id = $clientes_cloud->id; $grupo_padrao->default = 1; //Grupo padrão $grupo_padrao->save(); //Ira disparar a trigger e chamar a spCriarPermissoesPadrao //----------------------------------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 = Auth::user()->id; $usuarios_grupo->usuarios_empresas_id = $id_empresas['id']; $usuarios_grupo->usuarios_empresas_clientes_cloud_id = $clientes_cloud->id; $usuarios_grupo->grupos_id = $grupo_padrao->id; $usuarios_grupo->save(); //------------------------------------FIM Grava usuario e grupo \Session::flash('flash_message', 'Dados Atualizados com Sucesso!!!'); return redirect('clientes'); }