API des organigrammes

Un article de OviWiki.

userincl.php

Sommaire

bab_orgchartAccess()

bab_getSuperior($iduser, $idoc = )

delincl.php

bab_deleteOrgChart($id)

ocapi.php

bab_OCGetChildCount($iIdEntity)

bab_OCGetChildNodeByPosition($iIdParentEntity, $iPosition)

bab_OCGetChildsEntities($idroot=, $idoc=)

liste des entités d'un organigramme, le idroot est optionnel, si non renseigné, c'est la racine de l'organigramme principal tout les sous noeuds sont listés dans tout les sous niveaux

bab_OCGetCollaborators($identity)

liste des collaborateurs d'une entité

array(
   array(id_user, lastname, firstname, middlename)
)

bab_OCGetEntities($idoc = )

bab_OCGetEntity($ide)

bab_OCGetEntityTypes($entityId)

Returns an ordered mysql result set containing the entity types for the specified entity.


bab_OCGetLastChild($iIdEntity)

Returns the id of the specified entity's last child.

bab_OCGetOrgChartEntityTypes($idoc)

Returns an ordered mysql result set containing the entity types avaiblable for the specified orgchart.

bab_OCgetPrimaryOcId()

Retourne l'ID de l'organigramme principale l'info est stockée dans $babBody->idprimaryoc mais il ne faut pas utiliser cette propriété


bab_OCGetRootEntity($idoc=)

Entité racine d'un organigramme

array(id, name, description);


bab_OCGetSuperior($identity)

Le supérieur de l'entité

array(id_user, lastname, firstname, middlename);


bab_OCGetSuperiors($idoc=)

liste des supérieurs de toutes les entités de l'organigramme

bab_OCGetTemporaryEmployee($identity)

search for a temporary employee in the entity used for approbation


bab_OCGetTemporaryEmployees($idoc=)

les intérimaires de l'organigramme


bab_OCGetUserEntities($iduser, $idoc=)

Liste des entités d'un utilisateur dans un organigramme particulier ou dans l'organigramme principale


bab_OCIsEntityChildOfRoot($iIdEntity)

Checks whether the entity $iIdEntity is a child of the root entity.


bab_OCIsEntityParentOf($iIdParentEntity, $iIdEntity)

bab_OCSelectEntityCollaborators($entityId)

Returns an ordered mysql result set containing the members of the entity $entityId.

Results fetched from the result set have the following structure:

array(
		'id_dir_entry' => directory entry id (@see bab_getDirEntry)
		'role_type' =>  1 = Superior, 2 = Temporary employee, 3 = Members, 0 = Other collaborators
		'role_name' => The role title
		'user_disabled' => 1 = disabled, 0 = not disabled
		'user_confirmed' => 1 = confirmed, 0 = not confirmed
		'sn' =>	The member's surname (last name)
		'givenname' => The member's given name (first name)
)

The result set is ordered by role types (in order 1,2,3,0) and by user name (according to ovidentia name ordering rules).



class bab_OrgChartUtil

__construct($iIdOrgChart, $iIdSessUser = null)

haveAdminRight()

isAccessValid()

create($sName, $sDescription, $iIdDelegation, $iIdDirectory)

A transformer en static ??? a supprimer ???


getRoot()

Returns information about a specified organizational chart. The current user must have "view" or "update" access to the organizational chart. The returned array has the following keys :

  • id
  • name
  • description
  • edit
  • edit_author
  • edit_date
  • id_dgowner
  • id_directory
  • type
  • id_first_node
  • id_closed_nodes


voir aussi bab_OCGetRootEntity()

orgChartExist($sName, $iIdDelegation)

a rendre static ???


lock()

unlock()

isLocked()

isLockedBy($iIdUser)

Gets a value that indicates whether an organizational chart is locked by a specific user.


getLockInfo()

createEntity($iIdParentEntity, $sName, $sDescription, $sNote, $iPosition, $mixedGroup = null, $iIdParentGroup = BAB_REGISTERED_GROUP)

getEntity($iIdEntity)

getUserEntities($iIdUser, $aRoleType = null)

Liste des entités d'un utilisateur éventuellement filtrées par type

problème :

il faut que l’utilisateur qui a été utilisé pour la création de l'objet ai les droits d'accès mais c'est l'utilisateur passé en parmètre qui est utilisé pour la requête.

updateEntity($iIdEntity, $sName, $sDescription)

Mise a jour du nom et de la description d'une entité


deleteEntity($iIdEntity, $iDeleteType)

valeurs possible de $iDeleteType :

  • BAB_OC_DELETE_CHILDREN_ONLY
  • BAB_OC_DELETE_ENTITY_AND_CHILDREN
  • BAB_OC_DELETE_ENTITY_ONLY

moveEntity($iIdSrcEntity, $iIdTrgEntity, $iMove, $iMoveType)

Déplacer


valeurs possibles pour $iMove :

  • BAB_OC_MOVE_ENTITY_ONLY
  • BAB_OC_MOVE_ENTITY_AND_CHILDREN

createRole($iIdEntity, $sName, $sDescription, $iType, $sCardinality)

getRoleById($iIdRole)

getRoleByUserId($iIdEntity, $iIdUser, $aRoleType = null)

getRoleByType($iIdEntity, $iType)

getRoleByName($iIdEntity, $sName, $iType)

getRoleByEntityId($iIdEntity, $iType = null)

Liste des roles dans une entité


deleteRoleByEntityId($iIdEntity, $iType = null)

createRoleUser($iIdRole, $iIdUser)

getRoleUserByUserId($iIdEntity, $iIdUser)

deleteUserRolesByRoleUserIds($aIdRoleUser, $iIdUser)

deleteRoleUserByRoleUserId($IdRoleUser)

deleteRoleUserByRoleId($iIdRole)

Développements nécessaires pour le lien avec les groupes et organigrammes

ajout d'un événement lors du déplacement d'un groupe et de la suppression d'un groupe pour permettre a un organigramme de bloquer la suppression ou le déplacement si :

  • un groupe parent est associé à l'organigramme (via l'annuaire associé) et que l'on cherche a sortir le sous groupe de l'arbre
  • si on veut mettre le groupe racine a l'intérieur d'un autre organigramme


lorsqu'un groupe est modifié, déplacé, supprimé : mettre la jour l'entité correspondante.


un groupe ne pourra pas devenir organigramme si :

  • un des sous-groupes de ce groupe est déjà lié à un organigramme
  • si un des groupes parents est déjà lié à un organigramme
  • si l'annuaire de groupe n'est pas activé


Fonctions nécessaire pour une personne (en lecture)

obtenir la liste des organigrammes associés et pour chaque organigramme la liste des entités + fonctions ou l'utilisateur est associé

les donnés nécessaire pour un organigramme sont :

  • id
  • nom
  • description
  • id groupe
  • id annuaire

les donnés nécessaires pour chaque entités ou l'utilisateur est associé sont :

  • id entité
  • id_groupe
  • nom de l'entité et du groupe
  • nom de la fonction (supérieur, intérimaire, membre...)


les donnés nécessaires pour chaque entités disponible sont :

  • id entité
  • id parent
  • id_groupe
  • nom de l'entité (et du groupe si un groupe est associé)

Fonctions nécessaire pour une personne (en écriture)

pouvoir associer un utilisateur a une entité d'organigramme


Fonctions nécessaire pour un groupe

permettre d'obtenir la l'organigramme et l'annuaire associé au groupe