2009-07-15 30 views
6

Tôi đã thêm trường người dùng tùy chỉnh trong Liferay và đặt giá trị cho một người dùng cụ thể.Nhận giá trị trường người dùng tùy chỉnh (expando) trong Liferay

Làm cách nào để truy cập giá trị này theo chương trình?

Nếu tôi cố gắng này, tôi luôn nhận được null:

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

user.getExpandoBridge().getAttribute("customAttr") trả về một giá trị của loại java.IO.Serializable.

Có thể diễn viên ở đây không đúng?

Nhưng Custom Attribute không tồn tại (mã sau in ra chìa khóa thuộc tính):

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

Bằng cách nào đó tôi bỏ lỡ Vấn đề ở đây ....

Trả lời

8

Đó là một vấn đề an ninh ...

Trong 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; 
    } 

tôi chỉ có để thiết lập permi xem sson trên giá trị expando tùy chỉnh, và mọi thứ hoạt động tốt.

0

Kiểm tra here cách khắc phục sự cố khi trường tùy chỉnh (trường mở rộng) được xuất cho người dùng trong CSV http://liferay.bdedov.eu/2012/02/exporting-user-custom-fields-in-csv.html. Nếu bạn muốn xuất khẩu người dùng và xác định các trường tùy chỉnh được bao gồm trong quá trình xuất, thì bạn chỉ nhận được các giá trị rỗng cho các trường tùy chỉnh. Hãy xem this post để biết cách khắc phục sự cố này.

+0

Tất cả các liên kết đều ngoại tuyến. Bạn có thể báo cáo giải pháp của mình ở đây không? –

1

Tôi biết đã muộn một chút, nhưng đối với những người vẫn cố gắng tìm ra lý do tại sao trường tùy chỉnh trở thành rỗng (mặc dù được đặt rõ ràng và hiển thị trong Liferay), trước tiên hãy đảm bảo rằng trường tùy chỉnh có quyền được đặt đúng (Bảng điều khiển -> Trường tùy chỉnh -> Người dùng -> chọn trường tùy chỉnh thích hợp và nhấp vào Hành động -> Quyền). Theo mặc định, Chủ sở hữu có tất cả các quyền, nhưng trong trường hợp của tôi, ví dụ, tôi cần có quyền Xem với tài khoản Khách (người dùng trong quá trình đăng nhập). Hi vọng điêu nay co ich.

Các vấn đề liên quan