Commit 3937a692 authored by David Surville's avatar David Surville
Browse files

Ajout des classes d'objet nécessaires à la création de chaque entité

parent 2cb72276
......@@ -32,6 +32,15 @@ abstract class Entity
*/
protected $node;
/**
* Liste des classes d'objet nécessaires à la création de l'entité
*
* @var string[]
*/
protected $objectClass = array(
);
/**
* Liste des attributs contenant des dates
*
......@@ -69,7 +78,7 @@ abstract class Entity
if ($data instanceof Node){
$this->setNode( $data );
}else{
$this->setNode( Node::create($data) );
$this->setNode( Node::create($data, $this->objectClass) );
}
}
......@@ -233,7 +242,7 @@ abstract class Entity
public function set($attrName, $value)
{
if (in_array($attrName, $this->dateTimeAttributes)){
$this->getNode()->setDateTimeAttribute($attrName, $value);
$this->getNode()->setDateTimeAttribute($attrName, $value, true);
}else{
$this->getNode()->setAttribute($attrName, $value);
}
......
......@@ -11,6 +11,20 @@ class Generic extends Entity
protected $type = 'Generic';
/**
* Liste des classes d'objet nécessaires à la création d'une adresse générique
*
* @var string[]
*/
protected $objectClass = array(
'top',
'inetOrgPerson',
'organizationalPerson',
'person',
'supannPerson',
'ucbnEmp'
);
/**
* Liste des attributs contenant des dates
*
......
......@@ -13,6 +13,16 @@ class Group extends Entity
protected $type = 'Group';
/**
* Liste des classes d'objet nécessaires à la création d'un groupe
*
* @var string[]
*/
protected $objectClass = array(
'groupOfNames',
'supannGroupe'
);
/**
* Liste des attributs contenant des dates
*
......
......@@ -14,19 +14,38 @@ use DateTime;
*/
class People extends Entity
{
protected $role_pattern = '/^\[role={SUPANN}(.*)\]\[type={SUPANN}(.*)\]\[code=(.*)\]\[libelle=(.*)\]$/';
/**
* Rôle de responsable de la sécurité des systèmes d'information
*/
const ROLE_RSSI = 'T83';
/**
* Rôle de correspondant sécurité des systèmes d'information
* Liste des rôles existants
*
* @var string[]
*/
const ROLE_CSSI = 'T84';
static protected $pattern = '/^\[role={SUPANN}(.*)\]\[type={SUPANN}(.*)\]\[code=(.*)\]\[libelle=(.*)\]$/';
public static $roles_list = array(
'RESP_ADMINISTRATIF' => 'R40',
);
protected $type = 'People';
/**
* Liste des classes d'objet nécessaires à la création d'une personne
* Il est nécessaire d'ajouter la classe 'ucbnEtu' ou 'ucbnEmp' selon le
* statut de la personne.
*
* @var string[]
*/
protected $objectClass = array(
'top',
'inetOrgPerson',
'organizationalPerson',
'person',
'eduPerson',
'supannPerson',
'sambaAccount',
'sambaSamAcount',
'posixAccount'
);
/**
* Liste des attributs contenant des dates
*
......@@ -207,7 +226,7 @@ class People extends Entity
*/
static public function isSupannRoleEntite($string, &$role = null, &$typeStructure = null, &$codeStructure = null, &$libelleRole = null)
{
if (preg_match(static::$pattern, $string, $matches)) {
if (preg_match($this->role_pattern, $string, $matches)) {
$role = $matches[1];
$typeStructure = $matches[2];
$codeStructure = $matches[3];
......
......@@ -13,6 +13,18 @@ class Structure extends Entity
protected $type = 'Structure';
/**
* Liste des classes d'objet nécessaires à la création d'une structure
*
* @var string[]
*/
protected $objectClass = array(
'top',
'organizationalUnit',
'supannEntite',
'ucbnEntite'
);
/**
* Liste des attributs contenant des dates
*
......
......@@ -11,6 +11,18 @@ class System extends Entity
protected $type = 'System';
/**
* Liste des classes d'objet nécessaires à la création d'un compte système
*
* @var string[]
*/
protected $objectClass = array(
'top',
'inetOrgPerson',
'organizationalPerson',
'person',
);
/**
* Liste des attributs contenant des dates
*
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment