Unverified Commit 5250d353 authored by Gabriel Antônio da Silva's avatar Gabriel Antônio da Silva Committed by GitHub
Browse files

Merge pull request #5 from lmts-ufape/submeter

Funcionalidades básicas
parents 5de5a599 96ffb16f
......@@ -6,13 +6,32 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use App\User;
use App\AdministradorResponsavel;
use App\Avaliador;
use App\Proponente;
use App\Participante;
use App\Endereco;
use App\Trabalho;
use App\Coautor;
use App\Evento;
use Illuminate\Support\Facades\Log;
class UserController extends Controller
{
//
public function index()
{
$eventos = Evento::all();
if(Auth::check()){
Log::debug('UserController check');
return redirect()->route('home');
}
Log::debug('UserController index');
return view('index', ['eventos' => $eventos]);
//return view('auth.login');
}
function perfil(){
$user = User::find(Auth::user()->id);
$end = $user->endereco;
......@@ -93,9 +112,29 @@ class UserController extends Controller
public function meusTrabalhos(){
$trabalhos = Trabalho::where('autorId', Auth::user()->id)->get();
//$trabalhos = Trabalho::where('autorId', Auth::user()->id)->get();
$proponente = Proponente::with('user')->where('user_id', Auth::user()->id)->first();
$trabalhos = $proponente->trabalhos;
//dd($trabalhos);
return view('user.meusTrabalhos',[
'trabalhos' => $trabalhos,
'trabalhos' => $trabalhos,
]);
}
public function minhaConta() {
$id = Auth::user()->id;
$user = User::find($id);
$adminResp = AdministradorResponsavel::where('user_id', '=', $id)->first();
$avaliador = Avaliador::where('user_id', '=', $id)->first();
$proponente = Proponente::where('user_id', '=', $id)->first();
$participante = Participante::where('user_id', '=', $id)->first();
return view('user.perfilUser')->with(['user' => $user,
'adminResp' => $adminResp,
'avaliador' => $avaliador,
'proponente' => $proponente,
'participante' => $participante]);
}
}
......@@ -19,6 +19,7 @@ class Kernel extends HttpKernel
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
//\App\Http\Middleware\checkAdministrador::class
];
/**
......@@ -62,6 +63,8 @@ class Kernel extends HttpKernel
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'isTemp' => \App\Http\Middleware\IsTemp::class,
'checkAdministrador' => \App\Http\Middleware\checkAdministrador::class,
'checkAdminResp' => \App\Http\Middleware\checkAdminResp::class,
];
/**
......
<?php
namespace App\Http\Middleware;
use Closure;
use Auth;
use Illuminate\Support\Facades\Log;
class checkAdminResp
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!Auth::check()){
Log::debug('checkAdminResp');
return redirect('/');
}
if(Auth::user()->tipo=='administradorResponsavel' || Auth::user()->tipo=='administrador'){
return $next($request);
}
else{
return redirect('home')->with('error', 'Você não possui privilégios para acessa esta funcionalidade');
}
}
}
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
use Illuminate\Support\Facades\Log;
class checkAdministrador
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!Auth::check()){
Log::debug('checkAdministrador');
return redirect('/');
}
if(Auth::user()->tipo=='administrador'){
return $next($request);
}
else{
return redirect('home')->with('error', 'Você não possui privilégios para acessa esta funcionalidade');
}
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Participante extends Model
{
protected $fillable = ['name', 'user_id', 'trabalho_id'];
public function user(){
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho', 'trabalho_participante');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class PlanoTrabalho extends Model
{
public function trabalho()
{
return $this->belongsTo('App\Trabalho');
}
}
<?php
namespace App\Policies;
use App\User;
use Illuminate\Auth\Access\HandlesAuthorization;
class AdminPolicy
{
use HandlesAuthorization;
/**
* Create a new policy instance.
*
* @return void
*/
public function __construct()
{
//
}
public function isAdministrador(User $user) {
return $user->tipo === "administrador";
}
public function isAdminResp(User $user) {
return $user->tipo === "administradorResponsavel";
}
}
......@@ -4,6 +4,8 @@ namespace App\Policies;
use App\User;
use App\Evento;
use App\CoordenadorComissao;
use App\AdministradorResponsavel;
use Illuminate\Auth\Access\HandlesAuthorization;
class EventoPolicy
......@@ -21,6 +23,9 @@ class EventoPolicy
}
public function isCoordenador(User $user, Evento $evento){
return $user->id === $evento->coordenador->id;
return $evento->criador_id == Auth()->user()->id;
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Proponente extends Model
{
public function user(){
return $this->belongsTo('App\User');
}
public function trabalhos(){
return $this->belongsToMany('App\Trabalho', 'trabalho_proponente');
}
}
......@@ -3,6 +3,7 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;
class AppServiceProvider extends ServiceProvider
{
......@@ -23,6 +24,6 @@ class AppServiceProvider extends ServiceProvider
*/
public function boot()
{
//
Validator::extend('cpf', '\App\Utils\CpfValidation@validate');
}
}
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class SubArea extends Model
{
//
}
......@@ -12,7 +12,26 @@ class Trabalho extends Model
* @var array
*/
protected $fillable = [
'titulo', 'autores', 'data', 'modalidadeId', 'areaId', 'autorId', 'eventoId', 'resumo', 'avaliado'
'titulo',
'data',
'avaliado',
'decisaoCONSU',
'pontuacaoPlanilha',
'linkGrupoPesquisa',
'linkLattesEstudante',
'anexoDecisaoCONSU',
'anexoAutorizacaoComiteEtica',
'anexoLattesCoordenador',
'anexoPlanilhaPontuacao',
'anexoProjeto',
'grande_area_id',
'area_id',
'sub_area_id',
'evento_id',
'proponente_id',
'coordenador_id',
];
public function recurso(){
......@@ -50,4 +69,19 @@ class Trabalho extends Model
public function evento(){
return $this->belongsTo('App\Evento', 'eventoId');
}
public function planoTrabalho(){
return $this->hasMany('App\PlanoTrabalho');
}
public function participantes(){
return $this->belongsToMany('App\Participante', 'trabalho_participante');
}
public function proponentes(){
return $this->belongsToMany('App\Proponente', 'trabalho_proponente');
}
public function coordenador(){
return $this->belongsTo('App\CoordenadorComissao');
}
public function avaliadors(){
return $this->belongsToMany('App\Avaliador');
}
}
......@@ -20,7 +20,7 @@ class User extends Authenticatable implements MustVerifyEmail
protected $fillable = [
'name', 'email', 'password', 'cpf', 'instituicao', 'celular',
'especProfissional', 'enderecoId',
'usuarioTemp',
'usuarioTemp', 'tipo', 'user_id'
];
/**
......@@ -76,8 +76,25 @@ class User extends Authenticatable implements MustVerifyEmail
public function evento(){
return $this->hasMany('App\Evento', 'coordenadorId');
}
public function administradors(){
return $this->hasMany('App\Administrador');
}
public function proponentes(){
return $this->hasMany('App\Proponente');
}
public function AdministradorResponsavel(){
return $this->hasMany('App\AdministradorResponsavel');
}
public function participantes(){
return $this->hasMany('App\Participante');
}
public function avaliadors(){
return $this->hasMany('App\Avaliador');
}
public function coordenadorComissao(){
return $this->hasMany('App\CoordenadorComissao');
}
public function sendPasswordResetNotification($token){
$this->notify(new recuperacaoSenha($token));
}
......
<?php namespace App\Utils;
class CpfValidation
{
public function validate($attribute, $value, $parameters, $validator)
{
return $this->isValidate($attribute, $value);
}
protected function isValidate($attribute, $value)
{
$c = preg_replace('/\D/', '', $value);
if (strlen($c) != 11 || preg_match("/^{$c[0]}{11}$/", $c)) {
return false;
}
for ($s = 10, $n = 0, $i = 0; $s >= 2; $n += $c[$i++] * $s--);
if ($c[9] != ((($n %= 11) < 2) ? 0 : 11 - $n)) {
return false;
}
for ($s = 11, $n = 0, $i = 0; $s >= 2; $n += $c[$i++] * $s--);
if ($c[10] != ((($n %= 11) < 2) ? 0 : 11 - $n)) {
return false;
}
return true;
}
}
\ No newline at end of file
File mode changed from 100644 to 100755
This diff is collapsed.
......@@ -16,16 +16,17 @@ class CreateUsersTable extends Migration
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name')->nullable();
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('email')->unique();
$table->string('password');
$table->string('instituicao')->nullable();
$table->string('celular')->nullable();
$table->string('cpf')->nullable();
$table->string('especProfissional')->nullable();
$table->string('tipo')->nullable();
$table->boolean('usuarioTemp')->nullable();
$table->rememberToken();
$table->timestamps();
$table->timestamp('email_verified_at')->nullable();
$table->integer('enderecoId')->nullable();
});
......
......@@ -15,17 +15,26 @@ class CreateTrabalhosTable extends Migration
{
Schema::create('trabalhos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->string('titulo');
$table->string('autores')->nullable();
$table->boolean('avaliado')->nullable();
$table->string('linkGrupoPesquisa');
$table->string('linkLattesEstudante');
$table->string('pontuacaoPlanilha');
$table->date('data')->nullable();
$table->text('resumo')->nullable();
$table->text('avaliado')->nullable();
//Anexos
$table->string('anexoProjeto');
$table->string('anexoDecisaoCONSU')->nullable();
$table->string('anexoPlanilhaPontuacao');
$table->string('anexoLattesCoordenador');
$table->string('anexoAutorizacaoComiteEtica');
//chaves estrangeiras
$table->unsignedBigInteger('grande_area_id');
$table->unsignedBigInteger('area_id');
$table->unsignedBigInteger('sub_area_id');
$table->unsignedBigInteger('evento_id');
$table->unsignedBigInteger('coordenador_id');
$table->integer('modalidadeId');
$table->integer('areaId');
$table->integer('autorId');
$table->integer('eventoId');
$table->timestamps();
});
}
......
......@@ -14,12 +14,13 @@ class CreateAreasTable extends Migration
public function up()
{
Schema::create('areas', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->bigIncrements('id');
$table->string('nome');
$table->integer('modalidadeId')->nullable();
$table->integer('eventoId');
$table->unsignedBigInteger('grande_area_id');
$table->timestamps();
// $table->integer('modalidadeId')->nullable();
// $table->integer('eventoId');
});
}
......
......@@ -16,28 +16,21 @@ class CreateEventosTable extends Migration
Schema::create('eventos', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
$table->string('nome')->nullable();
// $table->integer('numeroParticipantes');
$table->string('nome')->nullable();
$table->string('descricao')->nullable();
$table->string('tipo')->nullable();
$table->date('dataInicio')->nullable();
$table->date('dataFim')->nullable();
$table->string('tipo')->nullable();
$table->date('inicioSubmissao')->nullable();
$table->date('fimSubmissao')->nullable();
$table->date('inicioRevisao')->nullable();
$table->date('fimRevisao')->nullable();
$table->date('inicioResultado')->nullable();
$table->date('fimResultado')->nullable();
$table->date('resultado')->nullable();
$table->integer('numMaxTrabalhos')->nullable();
$table->integer('numMaxCoautores')->nullable();
// $table->boolean('possuiTaxa');
// $table->double('valorTaxa');
$table->string('fotoEvento')->nullable();
$table->boolean('hasResumo')->nullable();
$table->integer('coordComissaoId')->nullable();
$table->integer('enderecoId')->nullable();
$table->integer('criador_id')->nullable();
$table->integer('coordenadorId')->nullable();
$table->string('pdfEdital')->nullable();
$table->string('modeloDocumento')->nullable();
});
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment