Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
open-source
OSE
Commits
94af66ca
Commit
94af66ca
authored
Jul 11, 2019
by
Laurent Lécluse
Browse files
Possibilité de créer un nouvel utilisateur en ligne de commande
parent
5c010bba
Changes
8
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.md
View file @
94af66ca
...
...
@@ -20,6 +20,8 @@ author: Laurent Lécluse - DSI - Unicaen
*
Le logo Unicaen n'est plus fourni par défaut dans l'interface de OSE en pied de page
*
Le lien "Informatique et libertés" est remplacé par un nouveau lien "Vie privée"
*
Interface de gestion des motifs de non paiement
*
Possibilité de créer un nouvel utilisateur dans OSE déconnecté du LDAP, ainsi qu'une fiche intervenant.
*
[
Documentation de la ligne de commande OSE
](
doc/ligne-de-commande.md
)
## Notes de mise à jour
...
...
admin/actions/creer-utilisateur.php
View file @
94af66ca
<?php
$c
->
println
(
"
\n
Création d'un nouveau compte utilisateur"
,
$c
::
COLOR_LIGHT_CYAN
);
$c
->
println
(
'Fonctionnalité en cours de développement : non exploitable pour le moment'
,
$c
::
BG_RED
);
$params
=
$c
->
getInputs
([
'nom'
=>
'Nom de l\'utilisateur'
,
...
...
@@ -12,4 +11,7 @@ $params = $c->getInputs([
'creer-intervenant'
=>
[
'description'
=>
'Voulez-vous créer un intervenant pour cet utilisateur ? (O ou Y pour oui)'
,
'type'
=>
'bool'
],
]);
var_export
(
$params
);
\ No newline at end of file
$params
[
'date-naissance'
]
=
$params
[
'date-naissance'
]
->
format
(
'd/m/Y'
);
$params
=
base64_encode
(
json_encode
(
$params
));
$oa
->
exec
(
"creer-utilisateur --data=
$params
"
);
\ No newline at end of file
admin/actions/help.php
View file @
94af66ca
...
...
@@ -7,6 +7,7 @@ $actions = [
"chargens-calcul-effectifs"
=>
"Calcul des effectifs du module Charges"
,
"calcul-tableaux-bord"
=>
"Recalcule tous les tableaux de bord de calculs itermédiaires"
,
"formule-calcul"
=>
"Calcul de toutes les heures complémentaires à l'aide de la formule"
,
"creer-utilisateur"
=>
"Création d'un nouvel utilisateur de OSE. Possibilité de créer une fiche intervenant dans la foulée"
,
"changement-mot-de-passe"
=>
"Changement de mot de passe (pour un utilisateur local uniquement)"
,
"maj-public-links"
=>
"Mise à jour des liens vers les répertoires publics des dépendances"
,
"clear-cache"
=>
"Vidage du cache de l'application"
,
...
...
doc/ligne-de-commande.md
0 → 100644
View file @
94af66ca
# Documentation de la ligne de comande
## Lancer la ligne de commande OSE
*
Lancer un terminal
*
Se positionner dans le répertoire de OSE
*
Lancer
```./bin/ose <action> <paramètres éventuels>```
Pour information, ./bin/ose help vous affichera la liste des actions disponibles.
## Liste des actions possibles
### ```update``` : Mise à jour de l'application
Plus d'infos sur la procédure de mise à jour ici :
[
Procédure de mise à jour
](
../UPDATE.md
)
.
### ```notifier-indicateurs``` : Envoi des mails relatifs aux indicateurs
Pas de paramètre pour cette commande.
### ```synchronisation``` : ```job``` : Effectue la synchronisation des données pour le ```job``` transmis
Pas de paramètre pour cette commande.
### ```chargens-calcul-effectifs``` : Calcul des effectifs du module Charges
Pas de paramètre pour cette commande.
### ```calcul-tableaux-bord``` : Recalcule tous les tableaux de bord de calculs itermédiaires
Pas de paramètre pour cette commande.
Attention : le temps de traitement peut être long!
### ```formule-calcul``` : Calcul de toutes les heures complémentaires à l'aide de la formule
Pas de paramètre pour cette commande.
Attention : le temps de traitement peut être long!
### ```creer-utilisateur``` : Création d'un nouvel utilisateur de OSE (hors LDAP).
Utile pour créer un utilisateur (personnel ou intervenant) non présent dans le LDAP
Vous pourrez également créer une fiche intervenant dans la foulée pour ce nouvel utilisateur.
une fois l'utilisateur créé, vous pourrez aller dans OSE, Administration, Affectations pour lui donner une nouvelle affectation.
Attention : l'
**utilisateur**
ne pourra se
**connecter**
directement à OSE
**que si**
l'application n'est
**pas cassifiée**
.
Paramètres possibles :
*
```nom```
: Nom de l
\'
utilisateur
*
```prenom```
: Prénom
*
```date-naissance```
: Date de naissance (format jj/mm/aaaa)
*
```login```
: Login
*
```mot-de-passe```
: Mot de passe (6 caractères minimum)
*
```creer-intervenant```
: Voulez-vous créer un intervenant pour cet utilisateur ?
Exemple de commande lancée avec des paramètres :
```
bash
./bin/ose creer-utilisateur
\
--nom
=
"Lécluse"
\
--prenom
=
"Laurent
\
--date-naissance="
01/01/1990
"
--login="
lecluse
"
--mot-de-passe="
mon-mdp-caché
"
--creer-intervenant=n
```
### ```changement-mot-de-passe``` : Changement de mot de passe (pour un utilisateur local uniquement)
Pas de paramètre pour cette commande.
Deux informations vous seront demandées :
*
le login de l'utilisateur
*
le nouveau mot de passe à saisir, ainsi que sa confirmation
Valable uniquement pour des utilisateurs non connectés au LDAP!!
### ```maj-public-links``` : Mise à jour des liens vers les répertoires publics des dépendances
Pas de paramètre pour cette commande.
### ```clear-cache``` : Vidage du cache de l'application
Pas de paramètre pour cette commande.
### ```test-bdd``` : Test d'accès à la base de données
Affiche si la base de données est accessible ou non.
Pas de paramètre pour cette commande.
module/Application/config/utilisateur.config.php
View file @
94af66ca
...
...
@@ -15,6 +15,15 @@ return [
],
],
],
'creer-utilisateur'
=>
[
'options'
=>
[
'route'
=>
'creer-utilisateur [--data=]'
,
'defaults'
=>
[
'controller'
=>
'Application\Controller\Utilisateur'
,
'action'
=>
'creation'
,
],
],
],
],
],
],
...
...
module/Application/src/Application/Controller/UtilisateurController.php
View file @
94af66ca
...
...
@@ -69,4 +69,22 @@ class UtilisateurController extends BaseController
$this
->
getServiceUtilisateur
()
->
changerMotDePasse
(
$userObject
,
$motDePasse
);
}
public
function
creationAction
()
{
$data
=
$this
->
getRequest
()
->
getParam
(
'data'
);
$data
=
json_decode
(
base64_decode
(
$data
));
$data
->
{
'date-naissance'
}
=
\
DateTime
::
createFromFormat
(
'd/m/Y'
,
$data
->
{
'date-naissance'
});
$this
->
getServiceUtilisateur
()
->
creerUtilisateur
(
$data
->
nom
,
$data
->
prenom
,
$data
->
{
'date-naissance'
},
$data
->
login
,
$data
->
{
'mot-de-passe'
},
$data
->
{
'creer-intervenant'
}
);
}
}
\ No newline at end of file
module/Application/src/Application/Service/AbstractEntityService.php
View file @
94af66ca
<?php
namespace
Application\Service
;
use
Application\Entity\Db\Utilisateur
;
use
Doctrine\ORM\EntityRepository
;
use
Zend\Stdlib\Hydrator\HydratorInterface
;
use
Zend\Stdlib\Hydrator\ObjectProperty
;
...
...
@@ -432,6 +433,16 @@ abstract class AbstractEntityService extends AbstractService
if
(
$serviceEntityClass
!=
$entityClass
&&
!
is_subclass_of
(
$entity
,
$serviceEntityClass
))
{
throw
new
\
RuntimeException
(
'L\'entité transmise n\'est pas de la classe '
.
$serviceEntityClass
.
'.'
);
}
if
(
$entity
instanceof
HistoriqueAwareInterface
){
if
(
!
$entity
->
getHistoCreateur
()){
/** @var UtilisateurService $utilisateurService */
$utilisateurService
=
\
Application
::
$container
->
get
(
UtilisateurService
::
class
);
$entity
->
setHistoCreateur
(
$utilisateurService
->
getOse
());
}
}
$this
->
getEntityManager
()
->
persist
(
$entity
);
$this
->
getEntityManager
()
->
flush
(
$entity
);
...
...
module/Application/src/Application/Service/IntervenantService.php
View file @
94af66ca
...
...
@@ -80,7 +80,7 @@ class IntervenantService extends AbstractEntityService
{
if
(
empty
(
$sourceCode
))
return
null
;
$sql
=
'SELECT ID FROM INTERVENANT WHERE '
.
$column
.
' IN (:value)'
;
$sql
=
'SELECT ID FROM INTERVENANT WHERE '
.
$column
.
' IN (:value)'
;
if
(
$anneeId
)
{
$sql
.
=
' AND ANNEE_ID = '
.
(
string
)(
int
)
$anneeId
;
}
...
...
@@ -209,7 +209,7 @@ class IntervenantService extends AbstractEntityService
*/
public
function
save
(
$entity
)
{
if
(
!
$entity
->
getSource
()){
if
(
!
$entity
->
getSource
())
{
$entity
->
setSource
(
$this
->
getServiceSource
()
->
getOse
());
}
...
...
@@ -329,10 +329,16 @@ class IntervenantService extends AbstractEntityService
*
* @return Intervenant
*/
public
function
creerIntervenant
(
string
$nom
,
string
$prenom
,
\
DateTime
$dateNaissance
,
string
$statut
=
null
)
:
Intervenant
public
function
creerIntervenant
(
string
$nom
,
string
$prenom
,
\
DateTime
$dateNaissance
,
string
$statut
=
null
)
:
Intervenant
{
$code
=
uniqid
(
'OSE'
);
if
(
$statut
)
{
$statutEntity
=
$this
->
getServiceStatutIntervenant
()
->
getByCode
(
$statut
);
}
else
{
$statutEntity
=
$this
->
getServiceStatutIntervenant
()
->
getAutres
();
}
$intervenant
=
new
Intervenant
;
$intervenant
->
setAnnee
(
$this
->
getServiceContext
()
->
getAnnee
());
$intervenant
->
setCode
(
$code
);
...
...
@@ -343,10 +349,12 @@ class IntervenantService extends AbstractEntityService
$intervenant
->
setNomUsuel
(
$nom
);
$intervenant
->
setPrenom
(
$prenom
);
$intervenant
->
setDateNaissance
(
$dateNaissance
);
$intervenant
->
setStatut
(
$
this
->
getServiceS
tatut
I
nt
ervenant
()
->
getByCode
(
$statut
)
);
$intervenant
->
setStatut
(
$
s
tatut
E
nt
ity
);
$this
->
save
(
$intervenant
);
$this
->
getServiceWorkflow
()
->
calculerTableauxBord
([],
$intervenant
);
return
$intervenant
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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