diff --git a/app/Http/Controllers/AdministradorController.php b/app/Http/Controllers/AdministradorController.php index 5e5f870a6caee22272ed23cb9ee1f4b69ef1db38..b0c55abdbcc24dad2134bacbe21de8342f54e9d7 100644 --- a/app/Http/Controllers/AdministradorController.php +++ b/app/Http/Controllers/AdministradorController.php @@ -306,23 +306,37 @@ class AdministradorController extends Controller public function destroy($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(); + + $adminResp = AdministradorResponsavel::where('user_id', $id)->first(); + $coordenador = CoordenadorComissao::where('user_id', $id)->first(); + $avaliador = Avaliador::where('user_id', $id)->first(); + $proponente = Proponente::where('user_id', $id)->first(); + $participantes = Participante::where('user_id', $id)->get(); if (!(is_null($adminResp))) { $adminResp->delete(); - } else if (!(is_null($avaliador))) { + } + if (!(is_null($coordenador))) { + $evento = Evento::where('coordenadorId', $coordenador->id)->get(); + if (isset($evento) && $evento->count() > 0) { + return redirect()->back()->withErrors(['error' => 'Esse coordenador está ligado a um edital']); + } else { + $coordenador->delete(); + } + } + if (!(is_null($avaliador))) { $avaliador->delete(); - } else if (!(is_null($proponente))) { + } + + if (!(is_null($proponente))) { $proponente->delete(); - } else if (!(is_null($participante))) { - $participante->delete(); } - + if (isset($participantes) && $participantes->count() > 0) { + return redirect()->back()->withErrors(['error' => 'Esse participante está ligado a um projeto que só pode ser deletado por seu proponente']); + } + $user->delete(); + return redirect( route('admin.usuarios') )->with(['mensagem' => 'Usuário deletado com sucesso']); } diff --git a/app/User.php b/app/User.php index 0a42835ded4015a611fcb5f0ef3f7c3592035f5a..27889642de2a5bf21ca60b5f495f51783f2e5783 100644 --- a/app/User.php +++ b/app/User.php @@ -7,11 +7,12 @@ use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\CanResetPassword; use App\Notifications\recuperacaoSenha; +use Illuminate\Database\Eloquent\SoftDeletes; class User extends Authenticatable implements MustVerifyEmail { use Notifiable; - + use SoftDeletes; /** * The attributes that are mass assignable. * diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php index 67fb576c9ad5be5e311371051326dc90ecbe95ef..ea8f1dc4f9d709a4c927bb785f2a380d50d2c360 100644 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -26,6 +26,7 @@ class CreateUsersTable extends Migration $table->rememberToken(); $table->timestamps(); + $table->softDeletes(); $table->timestamp('email_verified_at')->nullable(); $table->integer('enderecoId')->nullable(); diff --git a/database/migrations/2020_02_06_132418_chaves_estrangeiras.php b/database/migrations/2020_02_06_132418_chaves_estrangeiras.php index e6194b4462ef064049bd48e92330d098e99cd79d..a019f9d41fe42436e64e5f54aaf6e1f86737c57f 100644 --- a/database/migrations/2020_02_06_132418_chaves_estrangeiras.php +++ b/database/migrations/2020_02_06_132418_chaves_estrangeiras.php @@ -61,13 +61,6 @@ class ChavesEstrangeiras extends Migration //------------------------------------------------------------------------ - - Schema::table('eventos', function (Blueprint $table) { - $table->foreign('coordenadorId')->references('id')->on('users'); - }); - - //------------------------------------------------------------------------ - Schema::table('mensagems', function (Blueprint $table) { $table->foreign('comissaoId')->references('id')->on('users'); }); diff --git a/database/migrations/2020_07_02_164936_change_foreign_evento_coordenador.php b/database/migrations/2020_07_02_164936_change_foreign_evento_coordenador.php new file mode 100644 index 0000000000000000000000000000000000000000..0a281273a9cc05bd740fcb6c0b491eba10328e9b --- /dev/null +++ b/database/migrations/2020_07_02_164936_change_foreign_evento_coordenador.php @@ -0,0 +1,30 @@ +foreign('coordenadorId')->references('id')->on('coordenador_comissaos'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + // + } +} diff --git a/resources/views/administrador/usersAdmin.blade.php b/resources/views/administrador/usersAdmin.blade.php index 196847184beaa755a75421b9f2767ddc1199c5a0..76855da9b76195dad3caf7a680f980bf53911ea1 100644 --- a/resources/views/administrador/usersAdmin.blade.php +++ b/resources/views/administrador/usersAdmin.blade.php @@ -5,6 +5,17 @@