金蝶EAS,驗證使用者在某個組織下有無特定許可權項
阿新 • • 發佈:2019-02-01
業務場景,用於查詢某個使用者在某個組織下有無特定的許可權。
例如,開啟選單時進行許可權校驗、點選功能按鈕時進行許可權校驗等。
package com.kingdee.eas.custom.cnodc.util; import com.kingdee.bos.Context; import com.kingdee.bos.util.BOSUuid; import com.kingdee.eas.base.permission.UserInfo; import com.kingdee.eas.base.permission.UserOrgPermFactory; import com.kingdee.bos.metadata.entity.FilterInfo; import com.kingdee.bos.metadata.entity.FilterItemInfo; /** * 許可權校驗相關 * @author 作者 * */ public class CoreUtil { /** * 查詢使用者是否具有某個組織下的特定許可權,用於前端 * @param userId 使用者主鍵 * @param orgId 業務組織 * @param permItemId 許可權主鍵 * */ public static boolean hasPerm(String userId, String orgId, String permItemId) { boolean flag = false; FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("owner.id", userId)); filter.getFilterItems().add(new FilterItemInfo("org.id", orgId)); filter.getFilterItems().add(new FilterItemInfo("permItem.id", permItemId)); try { flag = UserOrgPermFactory.getRemoteInstance().exists(filter); } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 查詢使用者是否具有某個組織下的特定許可權,用於前端 * @param user 使用者 * @param orgId 業務組織 * @param permItemId 許可權主鍵 * */ public static boolean hasPerm(UserInfo user, BOSUuid orgId, String permItemId){ boolean flag = false; FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("owner.id", user.getId())); filter.getFilterItems().add(new FilterItemInfo("org.id", orgId)); filter.getFilterItems().add(new FilterItemInfo("permItem.id", permItemId)); try { flag = UserOrgPermFactory.getRemoteInstance().exists(filter); } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 查詢使用者是否具有某個組織下的特定許可權,用於後臺 * @param ctx 上下文 * @param userId 使用者主鍵 * @param orgId 業務組織 * @param permItemId 許可權主鍵 * */ public static boolean hasPerm(Context ctx, String userId, String orgId, String permItemId){ boolean flag = false; FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("owner.id", userId)); filter.getFilterItems().add(new FilterItemInfo("org.id", orgId)); filter.getFilterItems().add(new FilterItemInfo("permItem.id", permItemId)); try { flag = UserOrgPermFactory.getLocalInstance(ctx).exists(filter); } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 查詢使用者是否具有某個組織下的特定許可權,用於後臺 * @param ctx 上下文 * @param user 使用者 * @param orgId 業務組織 * @param permItemId 許可權主鍵 * */ public static boolean hasPerm(Context ctx, UserInfo user, BOSUuid orgId, String permItemId) { boolean flag = false; FilterInfo filter = new FilterInfo(); filter.getFilterItems().add(new FilterItemInfo("owner.id", user.getId())); filter.getFilterItems().add(new FilterItemInfo("org.id", orgId)); filter.getFilterItems().add(new FilterItemInfo("permItem.id", permItemId)); try { flag = UserOrgPermFactory.getLocalInstance(ctx).exists(filter); } catch (Exception e) { e.printStackTrace(); } return flag; } }