Come verificare se un altro utente è sullo stesso o inferiore livello nella gerarchia azienda?
-
20-09-2019 - |
Domanda
Ho questo:
UserProfile prof = getUserProfile(properties.CurrentUserId);
UserProfile toCheck = getUserProfile(anotherUsersId);
utente "prof" deve essere su una maggiore o sullo stesso livello come utente "tocheck". Se "tocheck" è su un livello inferiore lui / lei deve essere sullo stesso ramo dell'albero gerarchia. Se sono sullo stesso piano, il loro manager deve essere lo stesso.
C'è un modo semplice per controllare questo?
Soluzione
Ci sono alcuni metodi che dovrebbero aiutare a qui:
Non c'è un "modo semplice" che ho trovato, ma è possibile scrivere i propri classi di supporto che utilizzano questi metodi, attraversare i profili utente, e trovare le informazioni necessarie.
Per inciso: "Colleghi" non è legato a questo. Si tratta di un elenco di persone che, con un completo mia implementazione del sito, gli utenti possono gestire se stessi.
Altri suggerimenti
Alcuni pseudo codice:
function compare(manager, toCheck, prof)
{
toManager=toCheck.manager;
if (toManager!=null)
{
if (manager==tomanager || prof==tomanager)
{
return true;
}
else
{
return compare("", tomanager, prof);
}
}
else // he/she is the boss
{
return false;
}
}
...
if (prof.manager!=null)
{
compare(prof.manager, toCheck, prof);
}
else // he/she is the boss
{
return true;
}