Получение пользовательского значения поля пользователя (expando) в Liferay - PullRequest
6 голосов
/ 15 июля 2009

Я добавил пользовательское поле пользователя в Liferay и установил значение для конкретного пользователя.

Как я могу получить доступ к этому значению программно?

Если я попробую это, я всегда получаю ноль:

String customAttr = (String)user.getExpandoBridge().getAttribute("customAttr");

user.getExpandoBridge().getAttribute("customAttr") возвращает значение типа java.IO.Serializable.

Может быть, здесь приведен неверный актерский состав?

Но пользовательский атрибут существует (следующий код выводит ключ атрибута):

for (Enumeration<String> attrs = user.getExpandoBridge().getAttributeNames(); attrs.hasMoreElements();)
    _log.info("elem: '" + attrs.nextElement() + "'");

Каким-то образом я здесь упускаю смысл ...

Ответы [ 3 ]

8 голосов
/ 17 июля 2009

Это была проблема безопасности ...

В com.liferay.portlet.expando.service.impl.ExpandoValueServiceImpl.getData(String className, String tableName, String columnName, long classPK):

    if (ExpandoColumnPermission.contains(
            getPermissionChecker(), column, ActionKeys.VIEW)) {

        return expandoValueLocalService.getData(
            className, tableName, columnName, classPK);
    }
    else {
        return null;
    }

Мне нужно было только установить разрешение просмотра для значения пользовательского расширения, и все работало нормально.

1 голос
/ 07 октября 2016

Я знаю, что уже немного поздно, но для тех, кто все еще пытается выяснить, почему настраиваемое поле оказывается пустым (хотя оно четко установлено и видно в Liferay), пожалуйста, сначала убедитесь, что оно имеет разрешения правильно настроен (Панель управления -> Пользовательские поля -> Пользователь -> выберите подходящее настраиваемое поле и нажмите Действие -> Разрешения). По умолчанию владелец обладает всеми правами, но в моем случае, например, мне нужно было разрешение на просмотр с учетной записью гостя (пользователь в процессе входа в систему). Надеюсь, это поможет.

0 голосов
/ 24 февраля 2012

Отметьте здесь как исправить проблему при экспорте пользовательских полей (полей раскрытия) для пользователей в CSV http://liferay.bdedov.eu/2012/02/exporting-user-custom-fields-in-csv.html. Если вы хотите выполнить экспорт пользователей и определить настраиваемые поля для включенный в экспорт, вы получите только нулевые значения для пользовательских полей. Проверьте этот пост , чтобы увидеть, как это исправить.

...