Как проверить, находится ли другой пользователь на том же или более низком уровне в иерархии компании? - PullRequest
1 голос
/ 08 октября 2009

У меня есть это:

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

Пользователь «prof» должен быть на более высоком или том же уровне, что и пользователь «toCheck». Если toCheck находится на более низком уровне, он / она должен находиться в одной ветви дерева иерархии. Если они находятся на одном уровне, их менеджер должен быть таким же.

Есть ли простой способ проверить это?

Ответы [ 2 ]

2 голосов
/ 08 октября 2009

Здесь вам могут помочь несколько методов:

Я не нашел "легкого пути", но вы можете написать свои собственные вспомогательные классы, использующие эти методы, пройти через профили пользователей и найти необходимую информацию.

В качестве отступления: "Коллеги" не имеют к этому отношения. Они представляют собой список людей, которыми, с полной реализацией My Site, пользователи могут управлять сами.

0 голосов
/ 08 октября 2009

Какой-то псевдокод:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...