判斷某個用戶是否在特定羣組API

public boolean isMemberByGroup(String groupName,String userName) {
		boolean isAccess = SessionServerHelper.manager.isAccessEnforced();
		try {
			if(isAccess) {
				SessionServerHelper.manager.setAccessEnforced(false);
			}
			WTUser sessionUser = getUserByName(userName);
			WTGroup ctsGroup = getGroupByName(groupName);
			if(ctsGroup != null){
				boolean isMember = OrganizationServicesHelper.manager.isMember(ctsGroup, sessionUser);
				if(isMember) {
					return true;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			SessionServerHelper.manager.setAccessEnforced(isAccess);
		}
		return false;
	}

	public static WTGroup getGroupByName(String groupName) {
		WTGroup wtGroup = null;
		try {
			QuerySpec qs = new QuerySpec(WTGroup.class);
			SearchCondition sc = new SearchCondition(WTGroup.class, WTGroup.NAME, 
					SearchCondition.EQUAL, groupName,	false);
			qs.appendSearchCondition(sc);
			QueryResult qr = PersistenceHelper.manager.find(qs);
			while (qr.hasMoreElements()) {
				wtGroup = (WTGroup) qr.nextElement();
				if (wtGroup.getDn() != null && wtGroup.getDn().indexOf("cn=public") >= 0) {
					return wtGroup;
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return wtGroup;
	}
	
	public static WTUser getUserByName(String name){
    	WTUser user = null;   
    	try {
    		QuerySpec qs = new QuerySpec(WTUser.class);
			SearchCondition sc = new SearchCondition(WTUser.class,WTUser.NAME, 
					SearchCondition.EQUAL, name, false);
			qs.appendSearchCondition(sc);			
			QueryResult qr = PersistenceHelper.manager.find(qs);
			if (qr.hasMoreElements()){
				user = (WTUser)qr.nextElement();
			}
			if(user == null)
				user = OrganizationServicesHelper.manager.getUser(name);				
			
		} catch (Exception e) {
			e.printStackTrace();
		}
    	return user;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章