403Webshell
Server IP : 54.233.248.239  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Modules/Colaborador/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Modules/Colaborador/Controllers/Admin/AdminColaboradorController.php
<?php

namespace App\Modules\Colaborador\Controllers\Admin;

use Illuminate\Http\Request;
use Mail;
use Exception;
use App\Http\Requests;
use App\Http\Controllers\BaseController;
use App\Modules\Colaborador\Models\Colaborador;
use Sentinel;
use Activation;
use DB;
use App\Services\GeralService;

use App\Services\UserService;
use Carbon\Carbon;

class AdminColaboradorController extends BaseController
{
	private $modulo;
	private $fields;
	private $fks;
	private $lastInsertId;

    public function __construct(){
		parent::__construct();
		$this->middleware('auth');
		$this->modulo = \App\Gerador::where('nome', 'Colaborador')->with('campos', 'fks')->first();
		$this->fields = $this->modulo->campos;
		$this->fks = $this->modulo->fks;
		$this->colaborador_m = new Colaborador();

		$usersRH = GeralService::getUsersRH();

		if(!in_array($this->current_user->id, $usersRH)){
			redirect()->to('/admin')->send();
		}
	}

	public function index(){
		$query = $this->colaborador_m->select('colaborador.*');

		$data['fields_listagem'] = array();
		foreach ($this->fields as $field) {
			if($field->listagem){
				$data['fields_listagem'][] = $field;
			}
		}
		foreach ($this->fks as $fk) {
			if($fk->listagem){
				if($fk->campoRelacionado->translatable){
					$table = $fk->moduloRelacionado->nome_tabela.'_descricao';
					$on = $fk->moduloRelacionado->nome_tabela.'_descricao.'.$fk->moduloRelacionado->nome_tabela.'_id';
				}else{
					$table = $fk->moduloRelacionado->nome_tabela;
					$on = $fk->moduloRelacionado->nome_tabela.'.id';
				}
				$query->leftJoin($table, 'colaborador.'.$fk->nome, '=', $on);
				$query->addSelect($table.'.'.$fk->campoRelacionado->nome.' as fk'.$fk->id);
				$data['fields_listagem'][] = $fk;
			}
			
		}

		$data['colaboradores'] = $query->groupBy('colaborador.id')->get();

		usort($data['fields_listagem'], function($a, $b) {
		    return $a->ordem - $b->ordem;
		});

		return view('Colaborador::admin/colaborador',$data);
	}

	public function detalheUsuario($id){

		$usuario = \App\User::find($id);

		$json = ['usuario' => $usuario, 'role_id' => $usuario->roleUser->role_id];

		return response()->json($json);
	}

	public function usuariosGrupo($role_id){

		$input       = \Request::input();
		$colaborador = $this->colaborador_m->find($input['colaborador_id']);
		$params      = (object) ['role_id' => $role_id, 'colaborador' => $colaborador];
		$usuarios    = UserService::getUsuariosColaboradores($params);

		$json = ['usuarios' => $usuarios];

		return response()->json($json);
	}

	public function add(){
		$data = array();
		$data['modulo'] = $this->modulo;
		$data['fields'] = [];
		foreach ($this->fields as $field) {
			$data['fields'][] = $field;
		}
		foreach ($this->fks as $fk) {
			$data['fields'][] = $fk;
		}
		usort($data['fields'], function($a, $b) {
		    return $a->ordem - $b->ordem;
		});
		foreach ($this->fks as $fk) {
			$classPath = '\App\Modules\\'.$fk->moduloRelacionado->nome.'\Models\\'.$fk->moduloRelacionado->nome;
			$data['array_'.$fk->nome] = $classPath::get();
		}
		$data['nextId'] = $this->colaborador_m->getNextAutoIncrement();
		$data['roles']  = \App\Role::where('tipo', 'colab')->get();
		$data['documentos'] = [];
		$data['ocorrencias'] = [];
		$data['acompanhamentos'] = [];
		return view('Colaborador::admin/form-colaborador', $data);
	}

	public function edit($slug){
		$id = Colaborador::where('slug', $slug)->value('id');
		$data['modulo'] = $this->modulo;
		$data['fields'] = [];
		foreach ($this->fields as $field) {
			$data['fields'][] = $field;
		}
		foreach ($this->fks as $fk) {
			$data['fields'][] = $fk;
		}
		usort($data['fields'], function($a, $b) {
		    return $a->ordem - $b->ordem;
		});
		foreach ($this->fks as $fk) {
			$classPath = '\App\Modules\\'.$fk->moduloRelacionado->nome.'\Models\\'.$fk->moduloRelacionado->nome;
			$data['array_'.$fk->nome] = $classPath::get();
		}
		$data['colaborador'] = $this->colaborador_m->find($id);

		if($this->modulo->galeria){
			$data['colaborador']->imagens = $this->colaborador_m->getImagens($id);
		}

		$data['roles'] = \App\Role::whereIn('tipo', ['colab','admin'])->get();
		if($data['colaborador']->user){
			$data['user'] = $data['colaborador']->user;
		}
		$params = (object) ['colaborador' => $data['colaborador']];
		$data['usuarios'] = UserService::getUsuariosColaboradores($params);

		$data['ocorrencias'] = DB::table('ocorrencias')->where('colaborador_id', $id)->orderBy('data')->get();
		$data['documentos'] = DB::table('documentos')->where('colaborador_id', $id)->get();
		$data['acompanhamentos'] = DB::table('acompanhamentos')->where('colaborador_id', $id)->get();

		$data['idade'] = Carbon::parse($data['colaborador']->data_nascimento)->age;		

		return view('Colaborador::admin/form-colaborador',$data);

	}
	

	public function save(Request $request){
		$post = $request->input();

		$dadosColaborador = $post;
		unset($dadosColaborador['id_role']);
		unset($dadosColaborador['email_acesso']);
		unset($dadosColaborador['password']);

		if(isset($post['email_acesso']) && $post['email_acesso'] != ''){
			if(isset($post['usuario_id']) && $post['usuario_id'] != ''){
				$dataUser = [
					'nome' => $post['nome'],
					'email' => $post['email_acesso'],
				];

				if(isset($post['password']) && $post['password'] != ''){
					$dataUser['password'] = $post['password'];
				} 
			
				$emailCheck = \App\User::where('id', '!=', $post['usuario_id'])->where('email', $dataUser['email'])->first();
				if($emailCheck){
					\Session::flash('type', 'error');
					\Session::flash('message', "Esse e-mail de acesso já está cadastrado!");
					return redirect()->back();
				}

				$user = Sentinel::findById($post['usuario_id']);
				Sentinel::update($user, $dataUser);
			} else{
				$dataUser = [
					'name'       => $post['nome'],
					'email'      => $post['email_acesso'],
					'password'   => $post['password']
				];

				$emailCheck = \App\User::where('email', $dataUser['email'])->first();
				if($emailCheck){
					\Session::flash('type', 'error');
					\Session::flash('message', "Esse e-mail de acesso já está cadastrado!");
					return redirect()->back();
				}

				$user = Sentinel::registerAndActivate($dataUser);
			}
		}

		if(isset($user)){
			if(isset($post['id_role']) && $post['id_role'] != ''){
				$role = Sentinel::findRoleById($post['id_role']);
				$user->roles()->detach();
				$role->users()->attach($user);
			}
			$dadosColaborador['usuario_id'] = $user->id; 
		}
		

		// Colaborador
		if(isset($post['id']) && $post['id'] != ''){
			$colaborador = Colaborador::find($post['id']);
			$colaborador->fill($dadosColaborador);
			$colaborador->save();
		} else{
			$colaborador = new Colaborador();
			$colaborador->fill($dadosColaborador);
			$colaborador->save();
		}

		\Session::flash('type', 'success');
		\Session::flash('message', "Alteracoes salvas com sucesso!");
	    return redirect('admin/colaborador');
	}

	public function upload_image(Request $request) {
		if($request->hasFile('file')) {
			//upload an image to the /img/tmp directory and return the filepath.
			$file = $request->file('file');
			$tmpFilePath = '/uploads/produto/';
			$tmpFileName = time() . '-' . $file->getClientOriginalName();
			$file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
			$path = $tmpFilePath . $tmpFileName;
			return response()->json(array('path'=> $path, 'file_name'=>$tmpFileName), 200);
		} else {
			return response()->json(false, 200);
		}
	}

	public function upload_galeria($id, Request $request) {
		if($request->hasFile('file')) {
			//upload an image to the /img/tmp directory and return the filepath.
			$file = $request->file('file');
			$tmpFilePath = '/uploads/colaborador/';
			$tmpFileName = time() . '-' . $file->getClientOriginalName();
			$file = $file->move(public_path() . $tmpFilePath, $tmpFileName);
			$path = $tmpFilePath . $tmpFileName;

			$this->colaborador_m->criar_imagem(array('id_colaborador' => $id, 'thumbnail_principal' => $tmpFileName));

			return response()->json(array('path'=> $path, 'file_name'=>$tmpFileName), 200);
		} else {
			return response()->json(false, 200);
		}
	}

	public function crop_image(Request $request) {
		$img      = \Image::make('uploads/produto/'.$request->input('file_name'));
		$dataCrop = json_decode($request->input('data_crop'));
		if($img->crop(intval($dataCrop->width), intval($dataCrop->height), intval($dataCrop->x), intval($dataCrop->y))->save('uploads/produto/thumb_'.$request->input('file_name'))){

			$produto_regiao = GeralService::uploadFile(FALSE, 'colaborador', ['filename' => 'thumb_'.$request->input('file_name'), 'delete' => false, 'subFolderLocal' => 'produto']);
			GeralService::deleteFileImages($request->input('file_name'), 'colaborador', 'produto');

			echo json_encode(array(
				'status'    => true,
				'path'      => '/uploads/produto/thumb_'.$request->input('file_name'),
				'file_name' => 'thumb_'.$request->input('file_name'),
			));

		}else{
			echo json_encode(array(
				'status' => false,
				'message' => 'Não foi possível alterar a imagem.'
			));
		}
	}

	public function delete($slug){
		$id = Colaborador::where('slug', $slug)->value('id');
		$this->colaborador_m->deletar($id);

		\Session::flash('type', 'success');
      \Session::flash('message', "Registro removido com sucesso!");
		return redirect('admin/colaborador');
	}

	public function delete_imagem($id){
		try{
			$imagem = $this->colaborador_m->getImagem($id);
			$this->colaborador_m->deletar_imagem($id);

			unlink('uploads/colaborador/'.$imagem->thumbnail_principal);

			return response()->json(array('status' => true, 'message' => 'Registro removido com sucesso!'));
		}catch(Exception $e){
			return response()->json(array('status' => false, 'message' => $e->getMessage()));
		}


	}

	private function slugify($string)
    {
        return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
    }

	public function verificarEmailExistente(Request $request){
		$email = $request->input('email');
		$user_id = $request->input('user_id');

		$check = DB::table('sis_users')->where('email', $email);
		if(isset($user_id) && $user_id != false){
			$check->where('id', '!=', $user_id);
		}
		
		if($check->first()){
			return response()->json(array('status' => true, 'message' => 'Esse e-mail já está cadastrado!'));
		}

		return response()->json(array('status' => false));
	}

	public function adicionarNovoItem(Request $request){
		$tipo = $request->input('tipo');

		$view = '';
		$dataView = [];
		$dataView['colaborador_id'] = $request->input('colaborador_id');
		if($tipo == 'ocorrencia'){
			$view = view('Colaborador::admin/forms/form-ocorrencia', $dataView);
		} else if($tipo == 'documentos'){
			$view = view('Colaborador::admin/forms/form-documentos', $dataView);
		} else if($tipo == 'acompanhamento'){
			$view = view('Colaborador::admin/forms/form-acompanhamento', $dataView);
		}

		return response()->json(array(
			'status' => true,
			'html' => $view->render(),
		));
	}

	public function salvarOcorrencia(Request $request){
		$input = $request->input();

		$arquivo_url = '';

		if($request->hasFile('arquivo')){
			$arquivo = $request->file('arquivo');

			$nome_arquivo = 'ocorrencia.'.$arquivo->getClientOriginalExtension();
			$arquivo_url =  GeralService::uploadFile($arquivo, 'colaborador/ocorrencias', [], $nome_arquivo); 
		}

		$dataInsert = [
			'nome' => $input['nome'],
			'descricao' => isset($input['descricao']) && $input['descricao'] != '' ? $input['descricao'] : '',
			'arquivo' => $arquivo_url ? $arquivo_url->url : '',
			'colaborador_id' => $input['colaborador_id'],
			'data' =>  isset($input['data']) ? date("Y-m-d H:i:s", strtotime($input['data'])) : date('Y-m-d H:i:s'),
		];

		$id = DB::table('ocorrencias')->insertGetId($dataInsert);

		$dataInsert['ocorrencia'] = (object)$dataInsert;
		$dataInsert['ocorrencia']->id = $id;


		return response()->json(array(
			'status' => true,
			'message' => 'Ocorrência salva com sucesso',
			'html' =>  view('Colaborador::admin/forms/ocorrencia-item', $dataInsert)->render(),
		));
	}
	
	public function salvarDocumento(Request $request){
		$input = $request->input();

		$arquivo_url = '';

		if($request->hasFile('arquivo')){
			$arquivo = $request->file('arquivo');

			$nome_arquivo = 'doc.'.$arquivo->getClientOriginalExtension();
			$arquivo_url =  GeralService::uploadFile($arquivo, 'colaborador/documentos', [], $nome_arquivo); 
		}

		$dataInsert = [
			'nome' => $input['nome'],
			'descricao' => isset($input['descricao']) && $input['descricao'] != '' ? $input['descricao'] : '',
			'arquivo' => $arquivo_url ? $arquivo_url->url : '',
			'colaborador_id' => $input['colaborador_id'],
			'data' =>  date('Y-m-d H:i:s'),
		];

		$id = DB::table('documentos')->insertGetId($dataInsert);

		$dataInsert['documento'] = (object)$dataInsert;
		$dataInsert['documento']->id = $id;


		return response()->json(array(
			'status' => true,
			'message' => 'Documento salvo com sucesso',
			'html' =>  view('Colaborador::admin/forms/documento-item', $dataInsert)->render(),
		));
	}

	public function salvarAcompanhamento(Request $request){
		$input = $request->input();

		$arquivo_url = '';

		if($request->hasFile('arquivo')){
			$arquivo = $request->file('arquivo');

			$nome_arquivo = 'acompanhamento.'.$arquivo->getClientOriginalExtension();
			$arquivo_url =  GeralService::uploadFile($arquivo, 'colaborador/acompanhamento', [], $nome_arquivo); 
		}

		$dataInsert = [
			'nome' => $input['nome'],
			'descricao' => isset($input['descricao']) && $input['descricao'] != '' ? $input['descricao'] : '',
			'arquivo' => $arquivo_url ? $arquivo_url->url : '',
			'colaborador_id' => $input['colaborador_id'],
			'data' =>  isset($input['data']) ? date("Y-m-d H:i:s", strtotime($input['data'])) : date('Y-m-d H:i:s'),
		];

		$id = DB::table('acompanhamentos')->insertGetId($dataInsert);

		$dataInsert['acompanhamento'] = (object)$dataInsert;
		$dataInsert['acompanhamento']->id = $id;


		return response()->json(array(
			'status' => true,
			'message' => 'Acompanhamento salvo com sucesso',
			'html' =>  view('Colaborador::admin/forms/acompanhamento-item', $dataInsert)->render(),
		));
	}

	public function excluirOcorrencia(Request $request){
		$ocorrencia_id = $request->input('ocorrencia_id');

		DB::table('ocorrencias')->where('id', $ocorrencia_id)->delete();
		
		return response()->json(array(
			'status' => true,
			'message' => 'Ocorrência excluída com sucesso',
		));
	}

	public function excluirDocumento(Request $request){
		$documento_id = $request->input('documento_id');

		DB::table('documentos')->where('id', $documento_id)->delete();
		
		return response()->json(array(
			'status' => true,
			'message' => 'Documento excluído com sucesso',
		));
	}

	public function excluirAcompanhamento(Request $request){
		$acompanhamento_id = $request->input('acompanhamento_id');

		DB::table('acompanhamentos')->where('id', $acompanhamento_id)->delete();
		
		return response()->json(array(
			'status' => true,
			'message' => 'Acompanhamento excluído com sucesso',
		));
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit