udistrital / sga_documentacion

Repositorio para la documentación del sistema de gestión académica
MIT License
0 stars 0 forks source link

Hacer uso del servicio de consulta de hora actual de servidor para limitar acceso a componentes por fuera de fechas y uso de ngIsGranted para control por rol también #421

Closed NeFaWaltPint closed 2 months ago

NeFaWaltPint commented 3 months ago

Se requiere implementar el uso del control de acceso por tiempo al componente de evaluación docente mediante el servicio de consulta de hora de servidor; el dato de la hora/fecha se debe contrastar con la fecha definida en la actividad del calendario asociada al proceso de evaluación. También, hacer uso de la directiva ngIsGranted para de igual forma mediante el rol garantizar o bloquear el acceso a ver el contenido del componente.

Sub Tareas

Criterios de aceptación

Requerimientos

No aplica

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

OscarLozano01 commented 3 months ago

Se inicia la implementación de integración del servicio de consulta de la hora actual del servidor para restringir el acceso a componentes fuera de las fechas permitidas.

OscarLozano01 commented 2 months ago

Se realiza implementación del servicio de consulta del Date del servidor y se configura la variable para que apunte directamente a el archivo environment.ts a la variable apiUrl

import { Injectable } from '@angular/core';
import { HttpClient, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from '../../environments/environment';

@Injectable({
  providedIn: 'root'
})
export class DateService {
  private url = environment.apiUrl;

  constructor(private http: HttpClient) { }

  getDateHeader(): Observable<string> {
    return new Observable(observer => {
      this.http.get(this.url, { observe: 'response' }).subscribe(
        (response: HttpResponse<any>) => {
          console.log('Response Headers:', response.headers.keys());
          const dateHeader = response.headers.get('Date');
          console.log('Date Header:', dateHeader);
          if (dateHeader) {
            observer.next(dateHeader);
          } else {
            observer.error('Date header not found');
          }
        },
        error => observer.error(error)
      );
    });
  }
}
OscarLozano01 commented 2 months ago

Se inician pruebas de Roles y Pruebas de mensaje al usuario cuando no tiene permisos de visualizar el contenido del componente.

OscarLozano01 commented 2 months ago

Se realizan restricciones de acceso a los componentes si el ROL no esta permitido a visualizar la información. Ajustes de app.module ya que no estaba reconociendo los Translate:

export function createTranslateLoader(http: HttpClient) {
  return new TranslateHttpLoader(http, 'http://localhost:4218/assets/i18n/', '.json');
}

Antes:

antes

Después:

Captura componente utest01

Acceso no autorizado mediante ROLES:

Captura usuario no autorizado contratista

Consumiendo servicio hora servidor: (Con su restricción: strict-origin-when-cross-origin para pruebas Locales)

consumiendo servicio de hora servidor

OscarLozano01 commented 2 months ago

Se inicia replica de la Lógica en los demás componentes con sus respectivos ROLES autorizados por cada componente.

OscarLozano01 commented 2 months ago

Se realiza implementación de restricción de acceso a la información de los componentes de acuerdo a los ROLES asignados a cada componente.

Captura consumiendo servicio de fecha evaluaciones Captura evaluaciones restricción desde roles Captura consumiendo servicio de fecha asignación de fechas componente asignación de fechas Capturaescaas Captura escalas restricción desde roles

norbeydanilo commented 2 months ago

Indicar estado actual de issue @OscarLozano01

NeFaWaltPint commented 2 months ago

PR con bastante retraso, dificulta la integración; se opta porque el desarrollador revise el conflicto y corrija ajustando a lo que ya existe en develop. También falta concluir un detalle respecto a la verificación de la fecha de actividad con la hora de servidor.

NeFaWaltPint commented 2 months ago

Se cancela PR, se integran cambios en issue relacionada.