本文整理汇总了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);
}
}
示例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));
}
}
示例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));
}
}
示例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));
}
}
示例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);
}
});
}
}
示例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);
}
}