fonctions pour déterminer si les conditions d'accès et d'inscription sont réalisées.
This commit is contained in:
parent
eb109328d9
commit
d7623cd1f5
@ -50,7 +50,7 @@ class common
|
|||||||
const ACCESS_TIMER = 1800;
|
const ACCESS_TIMER = 1800;
|
||||||
|
|
||||||
// Numéro de version
|
// Numéro de version
|
||||||
const ZWII_VERSION = '0.0.01';
|
const ZWII_VERSION = '1.0.00';
|
||||||
|
|
||||||
// URL autoupdate
|
// URL autoupdate
|
||||||
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
|
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
|
||||||
@ -59,6 +59,18 @@ class common
|
|||||||
// Valeurs possibles multiple de 10, 10 autorise 9 profils, 100 autorise 99 profils
|
// Valeurs possibles multiple de 10, 10 autorise 9 profils, 100 autorise 99 profils
|
||||||
const MAX_PROFILS = 10;
|
const MAX_PROFILS = 10;
|
||||||
|
|
||||||
|
// Constantes pour les cours
|
||||||
|
|
||||||
|
// Modalités d'ouverture
|
||||||
|
const COURSE_ACCESS_OPEN = 0;
|
||||||
|
const COURSE_ACCESS_DATE = 1;
|
||||||
|
const COURSE_ACCESS_CLOSE = 2;
|
||||||
|
// Modalités d'inscription
|
||||||
|
const COURSE_ENROLMENT_GUEST = 0;
|
||||||
|
const COURSE_ENROLMENT_SELF = 1; // Ouvert à tous les membres
|
||||||
|
const COURSE_ENROLMENT_SELF_KEY = 2; // Ouvert à tous les membres disposant de la clé
|
||||||
|
const COURSE_ENROLMENT_MANUAL = 3;
|
||||||
|
|
||||||
|
|
||||||
public static $actions = [];
|
public static $actions = [];
|
||||||
public static $coreModuleIds = [
|
public static $coreModuleIds = [
|
||||||
@ -1443,7 +1455,74 @@ class common
|
|||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autorise l'accès à un cours
|
||||||
|
* @param @return bool le user a le droit d'entrée dans le cours
|
||||||
|
* @param string $userId identifiant de l'utilisateur
|
||||||
|
* @param string $courseId identifiant du cours sollicité
|
||||||
|
*/
|
||||||
|
public function courseUserEnrolment($courseId, $userId)
|
||||||
|
{
|
||||||
|
// Modalité d'ouverture du cours
|
||||||
|
// L'utilisateur n'est pas admin
|
||||||
|
switch ($this->getData(['user', $userId, 'group'])) {
|
||||||
|
case self::GROUP_ADMIN:
|
||||||
|
return true;
|
||||||
|
case self::GROUP_TEACHER:
|
||||||
|
return ($userId === $this->getData(['enrolment', $courseId, 'teacher']));
|
||||||
|
case self::GROUP_STUDENT:
|
||||||
|
return (
|
||||||
|
// Le cours est-il ouvert ?
|
||||||
|
$this->courseAccess($courseId) &&
|
||||||
|
// L'étudiant est isncrits ?
|
||||||
|
array_search($userId, $this->getData(['enrolment', $courseId, 'students']))
|
||||||
|
);
|
||||||
|
case self::GROUP_VISITOR:
|
||||||
|
// Le cours est-il ouvert ?
|
||||||
|
return (
|
||||||
|
$this->courseAccess($courseId) &&
|
||||||
|
$this->getData(['course', $courseId, 'enrolment']) === self::COURSE_ENROLMENT_GUEST
|
||||||
|
);
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if ($this->getData(['user', $userId, 'group']) < self::GROUP_ADMIN) {
|
||||||
|
if (
|
||||||
|
// le cours est fermé
|
||||||
|
$this->getData(['course', $courseId, 'access']) === self::COURSE_ACCESS_CLOSE
|
||||||
|
||
|
||||||
|
// Le cours ets ouvert entre deux dates
|
||||||
|
($this->getData(['course', $courseId, 'access']) &&
|
||||||
|
($this->getData(['course', $courseId, 'openingDate']) >= time() ||
|
||||||
|
$this->getData(['course', $courseId, 'clodingDate']) <= time())
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autorise l'accès à un cours
|
||||||
|
* @param @return bool le user a le droit d'entrée dans le cours
|
||||||
|
* @param string $courseId identifiant du cours sollicité
|
||||||
|
*/
|
||||||
|
public function courseAccess($courseId)
|
||||||
|
{
|
||||||
|
$access = $this->getData(['course', $courseId, 'access']);
|
||||||
|
switch ($access) {
|
||||||
|
case self::COURSE_ACCESS_OPEN:
|
||||||
|
return true;
|
||||||
|
case self::COURSE_ACCESS_DATE:
|
||||||
|
return (
|
||||||
|
time() >= $this->getData(['course', $courseId, 'openingDate']) &&
|
||||||
|
time() <= $this->getData(['course', $courseId, 'closingDate'])
|
||||||
|
);
|
||||||
|
case self::COURSE_ACCESS_CLOSE:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -25,25 +25,23 @@ class course extends common
|
|||||||
];
|
];
|
||||||
|
|
||||||
public static $courseAccess = [
|
public static $courseAccess = [
|
||||||
0 => 'Ouvert',
|
self::COURSE_ACCESS_OPEN => 'Ouvert',
|
||||||
1 => 'Période d\'ouverture',
|
self::COURSE_ACCESS_DATE => 'Période d\'ouverture',
|
||||||
2 => 'Fermé',
|
self::COURSE_ACCESS_CLOSE => 'Fermé',
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $courseEnrolment = [
|
public static $courseEnrolment = [
|
||||||
0 => 'Anonyme',
|
self::COURSE_ENROLMENT_GUEST => 'Anonyme',
|
||||||
1 => 'Auto-inscrition libre',
|
self::COURSE_ENROLMENT_SELF => 'Auto-inscrition libre',
|
||||||
2 => 'Auto-inscription avec clé',
|
self::COURSE_ENROLMENT_SELF_KEY => 'Auto-inscription avec clé',
|
||||||
3 => 'Manuelle'
|
self::COURSE_ENROLMENT_MANUAL => 'Manuelle'
|
||||||
];
|
];
|
||||||
|
|
||||||
public static $courseTeachers = [];
|
public static $courseTeachers = [];
|
||||||
|
|
||||||
public static $courses = [];
|
public static $courses = [];
|
||||||
|
|
||||||
const COURSE_ACCESS_OPEN = 0;
|
|
||||||
const COURSE_ACCESS_DATE = 0;
|
|
||||||
const COURSE_ACCESS_CLOSE = 0;
|
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
@ -245,23 +243,6 @@ class course extends common
|
|||||||
// Cours sélectionnée
|
// Cours sélectionnée
|
||||||
$courseId = $this->getUrl(2);
|
$courseId = $this->getUrl(2);
|
||||||
|
|
||||||
// Modalité d'ouverture du cours
|
|
||||||
// L'utilisateur n'est pas admin
|
|
||||||
if ($this->getUser('group') < self::GROUP_ADMIN) {
|
|
||||||
if (
|
|
||||||
// le cours est fermé
|
|
||||||
$this->getData(['course', $courseId, 'access']) === self::COURSE_ACCESS_CLOSE
|
|
||||||
||
|
|
||||||
// Le cours ets ouvert entre deux dates
|
|
||||||
($this->getData(['course', $courseId, 'access']) &&
|
|
||||||
($this->getData(['course', $courseId, 'openingDate']) >= time() ||
|
|
||||||
$this->getData(['course', $courseId, 'clodingDate']) <= time())
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
// home n'est pas présent dans la base de donénes des cours
|
// home n'est pas présent dans la base de donénes des cours
|
||||||
$courseId === 'home' ||
|
$courseId === 'home' ||
|
||||||
|
Loading…
x
Reference in New Issue
Block a user