Files
sam e5e6f72f92
CD - Déploiement continu / deploy (push) Successful in 6m44s
CI - Intégration continue / quality-and-tests (push) Failing after 2m30s
Sécurisation, déploiement CI/CD Gitea et documentation INFCDAAL3
- CI/CD Gitea Actions: ci.yml (Pint + PHPUnit), deploy.yml (déploiement SSH)
- Suppression de l'ancien workflow GitHub cassé
- En-têtes de sécurité: ajout CSP et Permissions-Policy
- RGPD: droit à l'effacement (anonymisation du compte) + tests
- Correctifs: ForceHttps hors env testing, timestamps du modèle Utilisateur,
  suppression des migrations en doublon (migrate échouait sur base neuve)
- Qualité: formatage Laravel Pint sur l'ensemble du code
- Documentation dossier technique (docs/) + .docx + .pptx

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 11:09:34 +02:00

65 lines
1.5 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Ressource extends Model
{
protected $primaryKey = 'ID_Ressource';
protected $table = 'ressources';
public $incrementing = true;
protected $fillable = [
'Titre',
'Contenu',
'URL',
'Visibilite',
'Statut',
'ID_Type_Ressource',
'ID_Moderateur_Validation',
'ID_Utilisateur_Createur',
];
protected $casts = [
'DateCreation' => 'datetime',
];
public function type()
{
return $this->belongsTo(TypeRessource::class, 'ID_Type_Ressource', 'ID_Type_Ressource');
}
public function categories()
{
return $this->belongsToMany(Categorie::class, 'ressource_categories', 'ID_Ressource', 'ID_Categorie', 'ID_Ressource', 'ID_Categorie');
}
public function createur()
{
return $this->belongsTo(Utilisateur::class, 'ID_Utilisateur_Createur', 'ID_Utilisateur');
}
public function moderateur()
{
return $this->belongsTo(Utilisateur::class, 'ID_Moderateur_Validation', 'ID_Utilisateur');
}
public function commentaires()
{
return $this->hasMany(Commentaire::class, 'ID_Ressource', 'ID_Ressource');
}
public function activites()
{
return $this->hasMany(Activite::class, 'ID_Ressource', 'ID_Ressource');
}
public function progressions()
{
return $this->hasMany(Utilisateur_Progression::class, 'ID_Ressource', 'ID_Ressource');
}
}