当前位置: 首页>>代码示例>>Java>>正文


Java UserInfos.getGroupsIds方法代码示例

本文整理汇总了Java中org.entcore.common.user.UserInfos.getGroupsIds方法的典型用法代码示例。如果您正苦于以下问题:Java UserInfos.getGroupsIds方法的具体用法?Java UserInfos.getGroupsIds怎么用?Java UserInfos.getGroupsIds使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.entcore.common.user.UserInfos的用法示例。


在下文中一共展示了UserInfos.getGroupsIds方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: authorize

import org.entcore.common.user.UserInfos; //导入方法依赖的package包/类
@Override
public void authorize(HttpServerRequest request, Binding binding, UserInfos user, Handler<Boolean> handler) {
	String sharedMethod = binding.getServiceMethod().replaceAll("\\.", "-");
	String id = request.params().get(conf.getResourceIdLabel());
	if (id != null && !id.trim().isEmpty()) {
		List<DBObject> groups = new ArrayList<>();
		groups.add(QueryBuilder.start("userId").is(user.getUserId())
				.put(sharedMethod).is(true).get());
		for (String gpId: user.getGroupsIds()) {
			groups.add(QueryBuilder.start("groupId").is(gpId)
					.put(sharedMethod).is(true).get());
		}
		QueryBuilder query = QueryBuilder.start("_id").is(id).or(
				QueryBuilder.start("owner.userId").is(user.getUserId()).get(),
				QueryBuilder.start("visibility").is(VisibilityFilter.PUBLIC.name()).get(),
				QueryBuilder.start("visibility").is(VisibilityFilter.PROTECTED.name()).get(),
				QueryBuilder.start("shared").elemMatch(
						new QueryBuilder().or(groups.toArray(new DBObject[groups.size()])).get()).get()
		);
		MongoAppFilter.executeCountQuery(request, conf.getCollection(),
				MongoQueryBuilder.build(query), 1, handler);
	} else {
		handler.handle(false);
	}
}
 
开发者ID:OPEN-ENT-NG,项目名称:community,代码行数:26,代码来源:PageReadFilter.java

示例2: list

import org.entcore.common.user.UserInfos; //导入方法依赖的package包/类
@Override
public void list(UserInfos user, Handler<Either<String, JsonArray>> handler) {
	String query;
	JsonArray values = new JsonArray();
	if (user != null) {
		List<String> gu = new ArrayList<>();
		gu.add(user.getUserId());
		if (user.getGroupsIds() != null) {
			gu.addAll(user.getGroupsIds());
		}
		final Object[] groupsAndUserIds = gu.toArray();
		query = "SELECT t.id as _id, t.title, t.icon, t.mode, t.created, t.modified, t.owner, u.username" +
			", json_agg(row_to_json(row(ts.member_id, ts.action)::actualites.share_tuple)) as shared" +
			", array_to_json(array_agg(group_id)) as groups" +
			" FROM actualites.thread AS t" +
			" LEFT JOIN actualites.users AS u ON t.owner = u.id" +
			" LEFT JOIN actualites.thread_shares AS ts ON t.id = ts.resource_id" +
			" LEFT JOIN actualites.members AS m ON (ts.member_id = m.id AND m.group_id IS NOT NULL)" +
			" WHERE ts.member_id IN " + Sql.listPrepared(groupsAndUserIds) +
			" OR t.owner = ? " +
			" GROUP BY t.id, u.username" +
			" ORDER BY t.modified DESC";
		values = new JsonArray(groupsAndUserIds).add(user.getUserId());
		Sql.getInstance().prepared(query.toString(), values, SqlResult.parseShared(handler));
	}
}
 
开发者ID:OPEN-ENT-NG,项目名称:actualites,代码行数:27,代码来源:ThreadServiceSqlImpl.java

示例3: retrieve

import org.entcore.common.user.UserInfos; //导入方法依赖的package包/类
@Override
public void retrieve(String id, UserInfos user, Handler<Either<String, JsonObject>> handler) {
	String query;
	JsonArray values = new JsonArray();
	if (id != null && user != null) {
		List<String> groupsAndUserIds = new ArrayList<>();
		groupsAndUserIds.add(user.getUserId());
		if (user.getGroupsIds() != null) {
			groupsAndUserIds.addAll(user.getGroupsIds());
		}
		query = "SELECT t.id as _id, t.title, t.icon, t.mode, t.created, t.modified, t.owner, u.username" +
			", json_agg(row_to_json(row(ts.member_id, ts.action)::actualites.share_tuple)) as shared" +
			", array_to_json(array_agg(group_id)) as groups" +
			" FROM actualites.thread AS t" +
			" LEFT JOIN actualites.users AS u ON t.owner = u.id" +
			" LEFT JOIN actualites.thread_shares AS ts ON t.id = ts.resource_id" +
			" LEFT JOIN actualites.members AS m ON (ts.member_id = m.id AND m.group_id IS NOT NULL)" +
			" WHERE t.id = ? " +
			" AND (ts.member_id IN " + Sql.listPrepared(groupsAndUserIds.toArray()) +
			" OR t.owner = ?) " +
			" GROUP BY t.id, u.username" +
			" ORDER BY t.modified DESC";
		values.add(Sql.parseId(id));
		for(String value : groupsAndUserIds){
			values.add(value);
		}
		values.add(user.getUserId());
		Sql.getInstance().prepared(query.toString(), values, SqlResult.parseSharedUnique(handler));
	}
}
 
开发者ID:OPEN-ENT-NG,项目名称:actualites,代码行数:31,代码来源:ThreadServiceSqlImpl.java

示例4: listLastPublishedInfos

import org.entcore.common.user.UserInfos; //导入方法依赖的package包/类
@Override
public void listLastPublishedInfos(UserInfos user, int resultSize, Handler<Either<String, JsonArray>> handler) {
	if (user != null) {
		String query;
		JsonArray values = new JsonArray();
		List<String> groupsAndUserIds = new ArrayList<>();
		groupsAndUserIds.add(user.getUserId());
		if (user.getGroupsIds() != null) {
			groupsAndUserIds.addAll(user.getGroupsIds());
		}
		query = "SELECT i.id as _id, i.title, u.username, t.id AS thread_id, t.title AS thread_title , " +
			" CASE WHEN i.publication_date > i.modified" +
				" THEN i.publication_date" +
				" ELSE i.modified" +
				" END as date" +
			", json_agg(row_to_json(row(ios.member_id, ios.action)::actualites.share_tuple)) as shared" +
			", array_to_json(array_agg(group_id)) as groups" +
			" FROM actualites.info AS i" +
			" LEFT JOIN actualites.thread AS t ON i.thread_id = t.id" +
			" LEFT JOIN actualites.users AS u ON i.owner = u.id" +
			" LEFT JOIN actualites.info_shares AS ios ON i.id = ios.resource_id" +
			" LEFT JOIN actualites.members AS m ON (ios.member_id = m.id AND m.group_id IS NOT NULL)" +
			" WHERE ((ios.member_id IN " + Sql.listPrepared(groupsAndUserIds.toArray()) + "AND ios.action = ?) OR i.owner = ?)" +
			" AND (i.status = 3" +
				" AND ((i.publication_date IS NULL OR i.publication_date <= NOW()) AND (i.expiration_date IS NULL OR i.expiration_date + interval '1 days' >= NOW())))" +
			" GROUP BY i.id, u.username, t.id" +
			" ORDER BY date DESC" +
			" LIMIT ?";

		for(String value : groupsAndUserIds){
			values.add(value);
		}
		values.add(RESOURCE_SHARED);
		values.add(user.getUserId());
		values.add(resultSize);
		Sql.getInstance().prepared(query.toString(), values, SqlResult.parseShared(handler));
	}
}
 
开发者ID:OPEN-ENT-NG,项目名称:actualites,代码行数:39,代码来源:InfoServiceSqlImpl.java

示例5: authorize

import org.entcore.common.user.UserInfos; //导入方法依赖的package包/类
@Override
public void authorize(final HttpServerRequest request, Binding binding, final UserInfos user,
		final Handler<Boolean> handler) {

	SqlConf conf = SqlConfs.getConf(ResourceTypeController.class.getName());
	String resourceTypeId = request.params().get(conf.getResourceIdLabel());

	if(resourceTypeId == null || resourceTypeId.trim().isEmpty()) {
		handler.handle(false);
	}
	else {
		request.pause();
		String sharedMethod = binding.getServiceMethod().replaceAll("\\.", "-");

		final List<String> groupsAndUserIds = new ArrayList<>();
		groupsAndUserIds.add(user.getUserId());
		if (user.getGroupsIds() != null && !user.getGroupsIds().isEmpty()) {
			groupsAndUserIds.addAll(user.getGroupsIds());
		}

		StringBuilder query = new StringBuilder();
		JsonArray values = new JsonArray();

		query.append("SELECT count(*)")
			.append(" FROM rbs.resource_type AS t")
			.append(" LEFT JOIN rbs.resource_type_shares AS ts ON t.id = ts.resource_id")
			.append(" WHERE ((ts.member_id IN ").append(Sql.listPrepared(groupsAndUserIds.toArray()))
			.append(" AND ts.action = ?)");
		for (String groupOrUserId : groupsAndUserIds) {
			values.add(groupOrUserId);
		}
		values.add(sharedMethod);

		// Authorize user if he is a local administrator for the resourceType's school_id
		List<String> scope = getLocalAdminScope(user);
		if (scope!=null && !scope.isEmpty()) {
			query.append(" OR t.school_id IN ").append(Sql.listPrepared(scope.toArray()));
			for (String schoolId : scope) {
				values.addString(schoolId);
			}
		}

		query.append(" OR t.owner = ?)")
			.append(" AND t.id = ?");
		values.add(user.getUserId())
			.add(Sql.parseId(resourceTypeId));

		Sql.getInstance().prepared(query.toString(), values, new Handler<Message<JsonObject>>() {
			@Override
			public void handle(Message<JsonObject> message) {
				request.resume();
				Long count = SqlResult.countResult(message);
				handler.handle(count != null && count > 0);
			}
		});
	}

}
 
开发者ID:OPEN-ENT-NG,项目名称:rbs,代码行数:59,代码来源:TypeOwnerSharedOrLocalAdmin.java

示例6: authorize

import org.entcore.common.user.UserInfos; //导入方法依赖的package包/类
@Override
public void authorize(final HttpServerRequest request, final Binding binding, final UserInfos user, final Handler<Boolean> handler) {
	SqlConf conf = SqlConfs.getConf(ThreadController.class.getName());
	String id = null;
	if(isThreadShare(binding)){
		id = request.params().get("id");
	} else {
		id = request.params().get(conf.getResourceIdLabel());
	}
	if (id != null && !id.trim().isEmpty() && (parseId(id) instanceof Integer)) {
		request.pause();
		// Method
		String sharedMethod = binding.getServiceMethod().replaceAll("\\.", "-");

		// Groups and users
		final List<String> groupsAndUserIds = new ArrayList<>();
		groupsAndUserIds.add(user.getUserId());
		if (user.getGroupsIds() != null) {
			groupsAndUserIds.addAll(user.getGroupsIds());
		}
		// Query
		StringBuilder query = new StringBuilder();
		JsonArray values = new JsonArray();
		query.append("SELECT count(*)")
			.append(" FROM actualites.thread AS t")
			.append(" LEFT JOIN actualites.thread_shares AS ts ON t.id = ts.resource_id")
			.append(" WHERE t.id = ? ")
			.append(" AND ((ts.member_id IN " + Sql.listPrepared(groupsAndUserIds.toArray()) + " AND ts.action = ?)")
			.append(" OR t.owner = ? )");
		values.add(Sql.parseId(id));
		for(String value : groupsAndUserIds){
			values.add(value);
		}
		values.add(sharedMethod);
		values.add(user.getUserId());

		// Execute
		Sql.getInstance().prepared(query.toString(), values, new Handler<Message<JsonObject>>() {
			@Override
			public void handle(Message<JsonObject> message) {
				request.resume();
				Long count = SqlResult.countResult(message);
				handler.handle(count != null && count > 0);
			}
		});
	} else {
		handler.handle(false);
	}
}
 
开发者ID:OPEN-ENT-NG,项目名称:actualites,代码行数:50,代码来源:ThreadFilter.java


注:本文中的org.entcore.common.user.UserInfos.getGroupsIds方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。