/plugins/userdata-widget/src/main/java/pl/net/bluesoft/rnd/pt/ext/userdata/widget/LiferayUserDataWidget.java
https://github.com/bluesoft-rnd/aperte-workflow-core · Java · 160 lines · 131 code · 26 blank · 3 comment · 3 complexity · 48cfa940349ff17356db3cd53ee5a588 MD5 · raw file
- package pl.net.bluesoft.rnd.pt.ext.userdata.widget;
- import com.liferay.portal.model.Role;
- import com.liferay.portal.model.User;
- import com.liferay.portal.security.permission.PermissionChecker;
- import com.liferay.portal.security.permission.PermissionThreadLocal;
- import com.liferay.portal.service.RoleServiceUtil;
- import com.liferay.portal.service.UserServiceUtil;
- import com.liferay.portal.util.PortalUtil;
- import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.AliasName;
- import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.AperteDoc;
- import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.AutoWiredProperty;
- import pl.net.bluesoft.rnd.processtool.ui.widgets.annotations.WidgetGroup;
- import javax.portlet.PortletRequest;
- import java.util.Collection;
- import java.util.HashSet;
- /**
- * @author tlipski@bluesoft.net.pl
- */
- @AliasName(name="LiferayUserData")
- @WidgetGroup("userdata-widget")
- public class LiferayUserDataWidget extends UserDataWidget {
- @AutoWiredProperty
- @AperteDoc(
- humanNameKey = "userdata.widget.liferay.liferayRoleName",
- descriptionKey = "userdata.widget.liferay.liferayRoleName.description"
- )
- public String liferayRoleName = "User";
- @Override
- protected Collection<UserData> getUsers() {
- try {
- final PermissionChecker oldChecker = PermissionThreadLocal.getPermissionChecker();
- try {
- PermissionThreadLocal.setPermissionChecker(new PermissionChecker() { //TODO not the best way to do it?
- @Override
- public long getCompanyId() {
- return oldChecker.getCompanyId();
- }
- @Override
- public long getOwnerRoleId() {
- return oldChecker.getOwnerRoleId();
- }
- @Override
- public long[] getRoleIds(long userId, long groupId) {
- return oldChecker.getRoleIds(userId, groupId);
- }
- @Override
- public long getUserId() {
- return oldChecker.getUserId();
- }
- @Override
- public boolean hasOwnerPermission(long companyId, String name, long primKey, long ownerId, String actionId) {
- return true;
- }
- @Override
- public boolean hasOwnerPermission(long companyId, String name, String primKey, long ownerId, String actionId) {
- return true;
- }
- @Override
- public boolean hasPermission(long groupId, String name, long primKey, String actionId) {
- return true;
- }
- @Override
- public boolean hasPermission(long groupId, String name, String primKey, String actionId) {
- return true;
- }
- @Override
- public boolean hasUserPermission(long groupId, String name, String primKey, String actionId, boolean checkAdmin) {
- return true;
- }
- @Override
- public void init(User user, boolean checkGuest) {
- oldChecker.init(user, checkGuest);
- }
- @Override
- public boolean isCommunityAdmin(long groupId) {
- return true;
- }
- @Override
- public boolean isCommunityOwner(long groupId) {
- return true;
- }
- @Override
- public boolean isCompanyAdmin() {
- return true;
- }
- @Override
- public boolean isCompanyAdmin(long companyId) {
- return true;
- }
- @Override
- public boolean isOmniadmin() {
- return true;
- }
- @Override
- public void resetValues() {
- oldChecker.resetValues();
- }
- @Override
- public void setCheckGuest(boolean checkGuest) {
- oldChecker.setCheckGuest(true);
- }
- @Override
- public void setValues(PortletRequest portletRequest) {
- oldChecker.setValues(portletRequest);
- }
- });
- Role role = RoleServiceUtil.getRole(PortalUtil.getDefaultCompanyId(), liferayRoleName);
- if (role == null) return new HashSet<UserData>();
- long[] roleUserIds = UserServiceUtil.getRoleUserIds(role.getRoleId());
- HashSet<UserData> users = new HashSet<UserData>();
- for (long roleUserId : roleUserIds) {
- User userById = UserServiceUtil.getUserById(roleUserId);
- UserData ud = new UserData();
- ud.setLogin(userById.getLogin());
- ud.setDescription(userById.getFullName());
- ud.setBpmLogin(userById.getScreenName());
- users.add(ud);
- }
- return users;
- }
- finally {
- PermissionThreadLocal.setPermissionChecker(oldChecker);
- }
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- public String getLiferayRoleName() {
- return liferayRoleName;
- }
- public void setLiferayRoleName(String liferayRoleName) {
- this.liferayRoleName = liferayRoleName;
- }
- }