Skip to content

Commit

Permalink
Merge pull request #10 from MikeLG909/main
Browse files Browse the repository at this point in the history
Actualizacion 7
  • Loading branch information
MikeLG909 authored Aug 2, 2024
2 parents c314671 + 61ddc1a commit 1bc257b
Show file tree
Hide file tree
Showing 9 changed files with 163 additions and 52 deletions.
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=control-acceso.mysql.database.azure.com
DB_PORT=3306
DB_DATABASE=control-acceso
DB_DATABASE=uaqroo_ctrl
DB_USERNAME=adminprime
DB_PASSWORD=Orionpax9
DB_SSLCA=DigiCertGlobalRootCA.crt.pem
Expand Down
9 changes: 5 additions & 4 deletions app/Http/Controllers/ApiUaqrooController.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ public function buscarUsuario($email, $areaId)
//desencriptar el email
$user_email = openssl_decrypt($emailDecoded2, 'aes-256-cbc', $key, 0, $iv);
Log::info('Email desencriptado: ' . $user_email);

// dd($user_email);
$user = User::where('email', $user_email)->firstOrFail();
Log::info('Usuario encontrado: ' . $user->usuario_id);

$user_id = $user->usuario_id;

$e = new EventosAcceso;
$e->area_id = $areaId;
$e->usuario_id = $user_id;
Expand All @@ -74,14 +74,15 @@ public function buscarUsuario($email, $areaId)

$validacion = Autorizaciones::where('usuario_id', $user_id)
->where('area_id', $areaId)
->orderBy('created_at', 'desc')
->first();

// usaremos una variable para almacnear el resultado de una funcion
// Validar si la autorozación sigue vigente usando if, y la función
// isFuture(), que es una función proporcionada por la biblioteca
// carbon de PHP dateTime utilzada por Laravel, para el manejo
// de fechas y tiempos más sencilla y fluida, en este caso
// verifica si espires_at esta en futuro.
// verifica si espires_at esta en futuro.
$expiresAt = Carbon::parse($validacion->expires_at);
if($validacion && (!$validacion->expires_at || Carbon::parse($validacion->expires_at)->isFuture())) {
$e->permiso = 'PERMITIDO';
$e->save();
Expand Down
29 changes: 27 additions & 2 deletions app/Http/Controllers/Auth/RegisteredUserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use App\Http\Controllers\Controller;
use App\Models\User;
use App\Models\Persona;
use App\Providers\RouteServiceProvider;
use Illuminate\Auth\Events\Registered;
use Illuminate\Http\RedirectResponse;
Expand All @@ -12,6 +13,7 @@
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules;
use Illuminate\View\View;
use Faker\Factory as Faker;

class RegisteredUserController extends Controller
{
Expand All @@ -30,18 +32,41 @@ public function create(): View
*/
public function store(Request $request): RedirectResponse
{
$faker = Faker::create();

$request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class],
'ape_materno' => ['required', 'string', 'max:255'],
'ape_paterno' => ['required', 'string', 'max:255'],
'genero' => ['required', 'string', 'max:8'],
'email' => ['required', 'email', 'max:255'],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);


$username = $faker->unique()->userName;
$rol_id = 1;

$user = User::create([
'nombre_usuario' => $request->name,
'nombre_usuario' => $username,
'email' => $request->email,
'rol_id' => $rol_id,
'password' => Hash::make($request->password),
]);

$userId = $user->usuario_id;

$persona = new Persona;
$persona->usuario_id = $userId;
$persona->nombre = $request->name;
$persona->ape_materno = $request->ape_materno;
$persona->ape_paterno = $request->ape_paterno;
$persona->sexo = $request->genero;
$persona->save();

$personaId = $persona->persona_id;
$user->persona_id = $personaId;

event(new Registered($user));

Auth::login($user);
Expand Down
3 changes: 2 additions & 1 deletion app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ class User extends Authenticatable
'nombre_usuario',
'email',
'password',
'persona_id'
'persona_id',
'rol_id'
];

public function persona()
Expand Down
29 changes: 29 additions & 0 deletions database/migrations/2024_06_09_071840_ejemplo_table.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('ejemplo', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('ejemplo');
$table->timestamps();
});
}

/**
* Reverse the migrations.
*/
public function down(): void
{
//
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
public function up()
{
Schema::table('persona', function (Blueprint $table) {
$table->foreign('usuario_id')
->references('usuario_id')
->on('usuarios')
->onDelete('cascade'); // Opcional: especifica el comportamiento ON DELETE
});
}

public function down()
{
Schema::table('persona', function (Blueprint $table) {
$table->dropForeign(['usuario_id']);
});
}

};
26 changes: 26 additions & 0 deletions database/migrations/2024_06_19_000820_crear_indice_aut.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('autorizaciones_usuarios', function (Blueprint $table) {
$table->index(['usuario_id', 'area_id']);
});
}

/**
* Reverse the migrations.
*/
public function down(): void
{
//
}
};
Binary file modified resources/images/favicon.ico
Binary file not shown.
91 changes: 47 additions & 44 deletions resources/views/auth/signin.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,95 +5,98 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<link rel="icon" type="image/x-icon" href="{{Vite::asset('resources/images/favicon.ico')}}"/>
<link rel="icon" type="image/x-icon" href="{{ Vite::asset('resources/images/favicon.ico') }}"/>
@vite(['resources/css/login.css'])
</head>
<body>
<div class="container">
<div class="forms-container">
<div class="signin-signup">
<!-- Formulario de inicio de sesión -->
<form method="POST" action="{{ route('login') }}" class="sign-in-form">
@csrf
@csrf
<h2 class="title">Iniciar Sesión</h2>
<div class="input-field">
<i class="fas fa-envelope"></i>
<x-text-input id="email" class="block mt-1 w-full" placeholder="Correo" type="email" name="email" :value="old('email')" required autofocus autocomplete="username" />
<x-input-error :messages="$errors->get('email')" class="mt-2" />
<x-text-input id="login-email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus autocomplete="username" placeholder="Correo"/>
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
<x-text-input id="password" class="block mt-1 w-full"
type="password"
name="password"
placeholder="Contraseña"
required autocomplete="current-password" />

<x-input-error :messages="$errors->get('password')" class="mt-2" />
<x-text-input id="login-password" class="block mt-1 w-full" type="password" name="password" placeholder="Contraseña" required autocomplete="current-password" />
<x-input-error :messages="$errors->get('password')" class="mt-2" />
</div>
<input type="submit" value="Login" class="btn solid">
</form>

<!-- Formulario de registro -->
<form action="#" class="sign-up-form">
<form method="POST" action="{{ route('register') }}" class="sign-up-form">
@csrf
<h2 class="title">Registro</h2>
<div class="input-field">
<i class="fas fa-user"></i>
<input type="text" placeholder="Nombre" />
<i class="fas fa-user"></i>
<x-text-input id="register-name" class="block mt-1 w-full" type="text" name="name" :value="old('name')" required autofocus autocomplete="name" placeholder="Nombre"/>
<x-input-error :messages="$errors->get('name')" class="mt-2" />
</div>
<div class="input-field">
<i class="fas fa-user"></i>
<input type="text" placeholder="Apellido materno" />
<i class="fas fa-user"></i>
<x-text-input id="register-ape_materno" class="block mt-1 w-full" type="text" name="ape_materno" :value="old('ape_materno')" required autofocus autocomplete="ape_materno" placeholder="Apellido materno"/>
<x-input-error :messages="$errors->get('ape_materno')" class="mt-2" />
</div>
<div class="input-field">
<i class="fas fa-user"></i>
<input type="text" placeholder="Apellido paterno" />
</div>
<i class="fas fa-user"></i>
<x-text-input id="register-ape_paterno" class="block mt-1 w-full" type="text" name="ape_paterno" :value="old('ape_paterno')" required autofocus autocomplete="ape_paterno" placeholder="Apellido paterno"/>
<x-input-error :messages="$errors->get('ape_paterno')" class="mt-2" />
</div>
<div class="input-field">
<i class="fa-solid fa-book"></i>
<select name="pets" id="pet-select">
<option value="">--Género--</option>
<option value="M">Hombre</option>
<option value="F">Mujer</option>
<option value="OTRO">Prefiero no contestar</option>
</select>
</div>
<i class="fa-solid fa-book"></i>
<select name="genero" id="genero">
<option value="">--Género--</option>
<option value="M">Hombre</option>
<option value="F">Mujer</option>
<option value="OTRO">Prefiero no contestar</option>
</select>
</div>
<div class="input-field">
<i class="fas fa-envelope"></i>
<x-text-input id="register-email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autocomplete="username" placeholder="Correo electrónico"/>
<x-input-error :messages="$errors->get('email')" class="mt-2" />
</div>
<div class="input-field">
<i class="fas fa-envelope"></i>
<input type="email" placeholder="Correo" />
<i class="fas fa-lock"></i>
<x-text-input id="register-password" class="block mt-1 w-full" type="password" name="password" required autocomplete="new-password" placeholder="Contraseña" />
<x-input-error :messages="$errors->get('password')" class="mt-2" />
</div>
<div class="input-field">
<i class="fas fa-lock"></i>
<input type="password" placeholder="Contraseña" />
<i class="fas fa-lock"></i>
<x-text-input id="password_confirmation" class="block mt-1 w-full"
type="password"
name="password_confirmation" required autocomplete="new-password"
placeholder="Confirmar contraseña" />
<x-input-error :messages="$errors->get('password_confirmation')" class="mt-2" />
</div>
<input type="submit" class="btn" value="Registrar" />
</form>
</form>
</div>
</div>

<div class="panels-container">
<div class="panel left-panel">
<div class="content">
<h3>¿Nuevo aquí?</h3>
<p>Puedes registrarte aquí</p>
<button class="btn transparent" id="sign-up-btn">Registro</button>
<button class="btn transparent" id="sign-up-btn">Registro</button>
</div>

<img src="{{Vite::asset('resources/images/log.svg')}}" class="image" alt="log">
<img src="{{ Vite::asset('resources/images/log.svg') }}" class="image" alt="log">
</div>

<div class="panel right-panel">
<div class="content">
<h3>¿Ya tienes cuenta?</h3>
<p>Inicia sesión aquí</p>
<button class="btn transparent" id="sign-in-btn">Iniciar sesión</button>
<button class="btn transparent" id="sign-in-btn">Iniciar sesión</button>
</div>

<img src="{{Vite::asset('resources/images/register.svg')}}" class="image" alt="log">
<img src="{{ Vite::asset('resources/images/register.svg') }}" class="image" alt="register">
</div>
</div>
</div>

@vite(['resources/js/login.js'])

</body>
</html>
</html>

0 comments on commit 1bc257b

Please sign in to comment.