Como verificar se um outro usuário está no mesmo ou mais baixo de nível na hierarquia da empresa?
-
20-09-2019 - |
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?
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;
}