Como verificar se um outro usuário está no mesmo ou mais baixo de nível na hierarquia da empresa?

StackOverflow https://stackoverflow.com/questions/1536444

Pergunta

Eu tenho isso:

UserProfile prof = getUserProfile(properties.CurrentUserId);
UserProfile toCheck = getUserProfile(anotherUsersId);

O usuário do "Prof" deve estar em um usuário mais alto ou no mesmo nível que "tocheck". Se "Tocheck" estiver em um nível mais baixo, ele deve estar no mesmo ramo da árvore da hierarquia. Se eles estão no mesmo nível, o gerente deve ser o mesmo.

Existe uma maneira fácil de verificar isso?

Foi útil?

Solução

Existem alguns métodos que devem ajudá -lo aqui:

Não há "maneira fácil" que eu encontrei, mas você pode escrever suas próprias classes de auxiliar que usam esses métodos, atravessam os perfis do usuário e encontram as informações necessárias.

Como um aparte: "colegas" não está relacionado a isso. Eles são uma lista de pessoas que, com uma implementação completa do meu site, os usuários podem se gerenciar.

Outras dicas

Algum código pseudo:

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;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top