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?

È stato utile?

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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top