Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
lib
unicaen
ldap
Commits
b53066f9
Commit
b53066f9
authored
Jun 25, 2020
by
surville
Browse files
[Evolution] Gestion de la modification de l'attribut "supannRefId" par étiquette
parent
8d66ec30
Changes
2
Show whitespace changes
Inline
Side-by-side
src/UnicaenLdap/Entity/Base/People.php
View file @
b53066f9
...
...
@@ -341,13 +341,13 @@ class People extends Entity
/**
* Attribut Ldap "dateDeNaissance"
*
* @deprecated Deprecated, use {@link self::setSchacDateOfBirth}
*
* @param array|string|DateTime|null $value
* @param bool $append
* @return self
* @throws Exception
* @throws LdapException
* @deprecated Deprecated, use {@link self::setSchacDateOfBirth}
*
*/
public
function
setDateDeNaissance
(
$value
=
null
,
$append
=
false
)
{
...
...
@@ -391,13 +391,13 @@ class People extends Entity
/**
* Attribut Ldap "dateFinInscription"
*
* @deprecated Deprecated, use {@link self::setSchacExpiryDate}
*
* @param array|string|DateTime|null $value
* @param bool $append
* @return self
* @throws Exception
* @throws LdapException
* @deprecated Deprecated, use {@link self::setSchacExpiryDate}
*
*/
public
function
setDateFinInscription
(
$value
=
null
,
$append
=
false
)
{
...
...
@@ -920,10 +920,9 @@ class People extends Entity
$supannLabel
=
$this
->
getLabel
(
'SUPANN'
);
$value
=
array_map
(
function
(
$val
)
use
(
$supannLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^"
.
$supannLabel
.
"[\w\-]+$/"
,
$val
))
{
if
(
preg_match
(
"/^"
.
$supannLabel
.
"[\w\-]+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^[\w\-]+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^[\w\-]+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$supannLabel
,
$val
);
}
}
...
...
@@ -1142,10 +1141,9 @@ class People extends Entity
$supannLabel
=
$this
->
getLabel
(
'SUPANN'
);
$value
=
array_map
(
function
(
$val
)
use
(
$supannLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^"
.
$supannLabel
.
"[\w\-]+$/"
,
$val
))
{
if
(
preg_match
(
"/^"
.
$supannLabel
.
"[\w\-]+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^[\w\-]+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^[\w\-]+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$supannLabel
,
$val
);
}
}
...
...
@@ -1179,7 +1177,7 @@ class People extends Entity
* @var string $code
*/
foreach
([
'role'
,
'type'
]
as
$part
)
{
$$part
=
preg_match
(
"/^"
.
$supannLabel
.
"[\w\-]+$/"
,
$matches
[
$part
])
$$part
=
preg_match
(
"/^"
.
$supannLabel
.
"[\w\-]+$/"
,
$matches
[
$part
])
?
$matches
[
$part
]
:
sprintf
(
'%s%s'
,
$supannLabel
,
$matches
[
$part
]);
}
...
...
@@ -1390,11 +1388,30 @@ class People extends Entity
public
function
setSupannRefId
(
$value
=
null
,
$append
=
false
)
{
$value
=
$this
->
preFormat
(
$value
);
$value
=
array_filter
(
$value
,
function
(
$v
)
{
return
preg_match
(
self
::
$attribute_with_label_pattern
,
$v
);
});
$this
->
appendOrNot
(
'supannRefId'
,
$value
,
$append
);
foreach
(
$value
as
$v
)
{
if
(
preg_match
(
self
::
$attribute_with_label_pattern
,
$v
,
$matches
))
{
if
(
$append
)
{
$this
->
appendOrNot
(
'supannRefId'
,
$v
,
true
);
}
else
{
$label
=
$matches
[
'etiquette'
];
$identifiant
=
$matches
[
'identifiant'
];
$currentValues
=
$this
->
preFormat
(
$this
->
supannRefId
);
array_walk
(
$currentValues
,
function
(
&
$cv
)
use
(
$label
,
$identifiant
)
{
if
(
preg_match
(
"/^"
.
$label
.
"(?<identifiant>.+)$/"
,
$cv
,
$matches
))
{
if
(
$matches
[
'identifiant'
]
!=
$identifiant
)
{
$this
->
remove
(
'supannRefId'
,
$cv
);
$cv
=
null
;
}
}
});
if
(
!
in_array
(
$v
,
$currentValues
))
{
$currentValues
[]
=
$v
;
}
$this
->
appendOrNot
(
'supannRefId'
,
array_filter
(
$currentValues
),
false
);
}
}
}
return
$this
;
}
...
...
@@ -1495,10 +1512,9 @@ class People extends Entity
$corpsLabel
=
$this
->
getLabel
(
'NCORPS'
);
$value
=
array_map
(
function
(
$val
)
use
(
$corpsLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^
$corpsLabel
\w+$/"
,
$val
))
{
if
(
preg_match
(
"/^
$corpsLabel
\w+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$corpsLabel
,
$val
);
}
}
...
...
@@ -1567,10 +1583,9 @@ class People extends Entity
$supannLabel
=
$this
->
getLabel
(
'SUPANN'
);
$value
=
array_map
(
function
(
$val
)
use
(
$supannLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^
$supannLabel
\w+$/"
,
$val
))
{
if
(
preg_match
(
"/^
$supannLabel
\w+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$supannLabel
,
$val
);
}
}
...
...
@@ -1617,7 +1632,7 @@ class People extends Entity
$value
=
$this
->
preFormat
(
$value
);
$value
=
array_map
(
function
(
$val
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
self
::
$attribute_with_label_pattern
,
$val
,
$matches
))
{
if
(
preg_match
(
self
::
$attribute_with_label_pattern
,
$val
,
$matches
))
{
$prefixe
=
$this
->
getService
()
->
getCodeModuleEnseignementPrefixe
();
$val
=
(
0
!==
strpos
(
$matches
[
'identifiant'
],
$prefixe
))
?
$prefixe
.
$matches
[
'identifiant'
]
...
...
@@ -1648,7 +1663,7 @@ class People extends Entity
$value
=
$this
->
preFormat
(
$value
);
$value
=
array_map
(
function
(
$val
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
self
::
$attribute_with_label_pattern
,
$val
,
$matches
))
{
if
(
preg_match
(
self
::
$attribute_with_label_pattern
,
$val
,
$matches
))
{
$prefixe
=
$this
->
getService
()
->
getCodeModuleEnseignementPrefixe
();
$val
=
(
0
!==
strpos
(
$matches
[
'identifiant'
],
$prefixe
))
?
$prefixe
.
$matches
[
'identifiant'
]
...
...
@@ -1680,10 +1695,9 @@ class People extends Entity
$siseLabel
=
$this
->
getLabel
(
'SISE'
);
$value
=
array_map
(
function
(
$val
)
use
(
$siseLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^
$siseLabel
\w+$/"
,
$val
))
{
if
(
preg_match
(
"/^
$siseLabel
\w+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$siseLabel
,
$val
);
}
}
...
...
@@ -1710,10 +1724,9 @@ class People extends Entity
$siseLabel
=
$this
->
getLabel
(
'SISE'
);
$value
=
array_map
(
function
(
$val
)
use
(
$siseLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^
$siseLabel
\w+$/"
,
$val
))
{
if
(
preg_match
(
"/^
$siseLabel
\w+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$siseLabel
,
$val
);
}
}
...
...
@@ -1740,10 +1753,9 @@ class People extends Entity
$siseLabel
=
$this
->
getLabel
(
'SISE'
);
$value
=
array_map
(
function
(
$val
)
use
(
$siseLabel
)
{
if
(
is_string
(
$val
))
{
if
(
preg_match
(
"/^
$siseLabel
\w+$/"
,
$val
))
{
if
(
preg_match
(
"/^
$siseLabel
\w+$/"
,
$val
))
{
return
$val
;
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
}
elseif
(
preg_match
(
"/^\w+$/"
,
$val
))
{
return
sprintf
(
'%s%s'
,
$siseLabel
,
$val
);
}
}
...
...
@@ -1904,12 +1916,12 @@ class People extends Entity
/**
* Attribut Ldap "sambaNTPassword"
* @see setNtPassword
*
* @param string $value
* @return $this
* @throws Exception
* @throws LdapException
* @see setNtPassword
*
*/
public
function
setSambaNTPassword
(
string
$value
)
{
...
...
@@ -1936,77 +1948,9 @@ class People extends Entity
*/
public
function
setUcbnSquidHash
(
string
$value
)
{
$value
=
"Unicaen:"
.
md5
(
sprintf
(
'%s:Unicaen:%s'
,
$this
->
get
(
'
supannAliasLogin
'
)
,
$value
));
$value
=
"Unicaen:"
.
md5
(
sprintf
(
'%s:Unicaen:%s'
,
$this
->
supannAliasLogin
,
$value
));
$this
->
appendOrNot
(
'ucbnSquidHash'
,
$value
,
false
);
return
$this
;
}
/**
* Retourne les structures auxquelles appartiennent la personne
*
* @return Structure[]
*/
public
function
getEduPersonOrgUnit
()
{
$structure
=
$this
->
getService
()
->
getServiceLocator
()
->
get
(
'ldapServiceStructure'
);
$dn
=
$this
->
eduPersonOrgUnitDN
;
if
(
empty
(
$dn
))
return
null
;
return
$structure
->
getAllBy
(
$dn
,
'dn'
);
}
/**
* Retourne la structure principale à laquelle appartient la personne
*
* @return Structure
*/
public
function
getEduPersonPrimaryOrgUnit
()
{
$structure
=
$this
->
getService
()
->
getServiceLocator
()
->
get
(
'ldapServiceStructure'
);
$dn
=
$this
->
eduPersonPrimaryOrgUnitDN
;
if
(
empty
(
$dn
))
return
null
;
return
$structure
->
getBy
(
$dn
,
'dn'
);
}
/**
* Retourne la structure d'affectation de la personne
*
* @todo à terminer
* @return Structure[]
* @throws \Exception
*/
public
function
getSupannEntiteAffectation
()
{
throw
new
\
Exception
(
'Méthode pas finie'
);
$structure
=
$this
->
getService
()
->
getServiceLocator
()
->
get
(
'ldapServiceStructure'
);
$codes
=
$this
->
getNode
()
->
getAttribute
(
'supannEntiteAffectation'
);
var_dump
(
$codes
);
return
$structure
->
getBy
(
$dn
,
'dn'
);
}
/**
* Retourne la structure d'affectation de la personne
*
* @todo à terminer
* @return Structure
* @throws \Exception
*/
public
function
getSupannEntiteAffectationPrincipale
()
{
throw
new
\
Exception
(
'Méthode pas finie'
);
$structure
=
$this
->
getService
()
->
getServiceLocator
()
->
get
(
'ldapServiceStructure'
);
$codes
=
[];
$affectations
=
$this
->
getNode
()
->
getAttribute
(
'supannAffectation'
);
list
(
$code
,
$description
)
=
explode
(
';'
,
$this
->
supannAffectation
);
$code
=
$this
->
supannAffectation
;
if
(
empty
(
$dn
))
return
null
;
return
$structure
->
getBy
(
$dn
,
'dn'
);
}
}
\ No newline at end of file
src/UnicaenLdap/Entity/People.php
View file @
b53066f9
...
...
@@ -2,8 +2,9 @@
namespace
UnicaenLdap\Entity
;
use
UnicaenLdap\Entity\Base\People
as
BasePeople
;
use
DateTime
;
use
UnicaenLdap\Entity\Base\People
as
BasePeople
;
use
UnicaenLdap\Entity\Base\Structure
;
/**
* Classe de gestion des entités de la branche "people" de l'annuaire LDAP.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment