keycloak-service
公開メンバ関数 | 静的公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.services.resources.admin.GroupResource クラス
org.keycloak.services.resources.admin.GroupResource 連携図
Collaboration graph

公開メンバ関数

 GroupResource (RealmModel realm, GroupModel group, KeycloakSession session, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
 
GroupRepresentation getGroup ()
 
void updateGroup (GroupRepresentation rep)
 
void deleteGroup ()
 
Response addChild (GroupRepresentation rep)
 
RoleMapperResource getRoleMappings ()
 
List< UserRepresentation > getMembers (@QueryParam("first") Integer firstResult, @QueryParam("max") Integer maxResults)
 
ManagementPermissionReference getManagementPermissions ()
 
ManagementPermissionReference setManagementPermissionsEnabled (ManagementPermissionReference ref)
 

静的公開メンバ関数

static void updateGroup (GroupRepresentation rep, GroupModel model)
 
static ManagementPermissionReference toMgmtRef (GroupModel group, AdminPermissionManagement permissions)
 

非公開変数類

final RealmModel realm
 
final KeycloakSession session
 
final AdminPermissionEvaluator auth
 
final AdminEventBuilder adminEvent
 
final GroupModel group
 

詳解

Groups

著者
Bill Burke

構築子と解体子

◆ GroupResource()

org.keycloak.services.resources.admin.GroupResource.GroupResource ( RealmModel  realm,
GroupModel  group,
KeycloakSession  session,
AdminPermissionEvaluator  auth,
AdminEventBuilder  adminEvent 
)
inline
67  {
68  this.realm = realm;
69  this.session = session;
70  this.auth = auth;
71  this.adminEvent = adminEvent.resource(ResourceType.GROUP);
72  this.group = group;
73  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
final AdminEventBuilder adminEvent
Definition: GroupResource.java:64
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63

関数詳解

◆ addChild()

Response org.keycloak.services.resources.admin.GroupResource.addChild ( GroupRepresentation  rep)
inline

Set or create child. This will just set the parent if it exists. Create it and set the parent if the group doesn't exist.

引数
rep
129  {
130  this.auth.groups().requireManage(group);
131 
132  for (GroupModel group : group.getSubGroups()) {
133  if (group.getName().equals(rep.getName())) {
134  return ErrorResponse.exists("Parent already contains subgroup named '" + rep.getName() + "'");
135  }
136  }
137 
138  Response.ResponseBuilder builder = Response.status(204);
139  GroupModel child = null;
140  if (rep.getId() != null) {
141  child = realm.getGroupById(rep.getId());
142  if (child == null) {
143  throw new NotFoundException("Could not find child by id");
144  }
145  adminEvent.operation(OperationType.UPDATE);
146  } else {
147  child = realm.createGroup(rep.getName());
148  updateGroup(rep, child);
149  URI uri = session.getContext().getUri().getBaseUriBuilder()
150  .path(session.getContext().getUri().getMatchedURIs().get(2))
151  .path(child.getId()).build();
152  builder.status(201).location(uri);
153  rep.setId(child.getId());
154  adminEvent.operation(OperationType.CREATE);
155 
156  }
157  realm.moveGroup(child, group);
158  adminEvent.resourcePath(session.getContext().getUri()).representation(rep).success();
159 
160  GroupRepresentation childRep = ModelToRepresentation.toGroupHierarchy(child, true);
161  return builder.type(MediaType.APPLICATION_JSON_TYPE).entity(childRep).build();
162  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
final AdminEventBuilder adminEvent
Definition: GroupResource.java:64
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
void updateGroup(GroupRepresentation rep)
Definition: GroupResource.java:100

◆ deleteGroup()

void org.keycloak.services.resources.admin.GroupResource.deleteGroup ( )
inline
110  {
111  this.auth.groups().requireManage(group);
112 
113  realm.removeGroup(group);
114  adminEvent.operation(OperationType.DELETE).resourcePath(session.getContext().getUri()).success();
115  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
final AdminEventBuilder adminEvent
Definition: GroupResource.java:64
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171

◆ getGroup()

GroupRepresentation org.keycloak.services.resources.admin.GroupResource.getGroup ( )
inline
戻り値
83  {
84  this.auth.groups().requireView(group);
85 
86  GroupRepresentation rep = ModelToRepresentation.toGroupHierarchy(group, true);
87 
88  rep.setAccess(auth.groups().getAccess(group));
89 
90  return rep;
91  }
final GroupModel group
Definition: GroupResource.java:65
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63

◆ getManagementPermissions()

ManagementPermissionReference org.keycloak.services.resources.admin.GroupResource.getManagementPermissions ( )
inline

Return object stating whether client Authorization permissions have been initialized or not and a reference

戻り値
229  {
231 
232  AdminPermissionManagement permissions = AdminPermissions.management(session, realm);
233  if (!permissions.groups().isPermissionsEnabled(group)) {
234  return new ManagementPermissionReference();
235  }
236  return toMgmtRef(group, permissions);
237  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63
static ManagementPermissionReference toMgmtRef(GroupModel group, AdminPermissionManagement permissions)
Definition: GroupResource.java:239

◆ getMembers()

List<UserRepresentation> org.keycloak.services.resources.admin.GroupResource.getMembers ( @QueryParam("first") Integer  firstResult,
@QueryParam("max") Integer  maxResults 
)
inline

Get users

Returns a list of users, filtered according to query parameters

引数
firstResultPagination offset
maxResultsMaximum results size (defaults to 100)
戻り値
204  {
206 
207 
208  firstResult = firstResult != null ? firstResult : 0;
209  maxResults = maxResults != null ? maxResults : Constants.DEFAULT_MAX_RESULTS;
210 
211  List<UserRepresentation> results = new ArrayList<UserRepresentation>();
212  List<UserModel> userModels = session.users().getGroupMembers(realm, group, firstResult, maxResults);
213 
214  for (UserModel user : userModels) {
215  results.add(ModelToRepresentation.toRepresentation(session, realm, user));
216  }
217  return results;
218  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63

◆ getRoleMappings()

RoleMapperResource org.keycloak.services.resources.admin.GroupResource.getRoleMappings ( )
inline
181  {
182  AdminPermissionEvaluator.RequirePermissionCheck manageCheck = () -> auth.groups().requireManage(group);
183  AdminPermissionEvaluator.RequirePermissionCheck viewCheck = () -> auth.groups().requireView(group);
184  RoleMapperResource resource = new RoleMapperResource(realm, auth, group, adminEvent, manageCheck, viewCheck);
185  ResteasyProviderFactory.getInstance().injectProperties(resource);
186  return resource;
187 
188  }
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
final AdminEventBuilder adminEvent
Definition: GroupResource.java:64
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63

◆ setManagementPermissionsEnabled()

ManagementPermissionReference org.keycloak.services.resources.admin.GroupResource.setManagementPermissionsEnabled ( ManagementPermissionReference  ref)
inline

Return object stating whether client Authorization permissions have been initialized or not and a reference

戻り値
initialized manage permissions reference
259  {
261  AdminPermissionManagement permissions = AdminPermissions.management(session, realm);
262  permissions.groups().setPermissionsEnabled(group, ref.isEnabled());
263  if (ref.isEnabled()) {
264  return toMgmtRef(group, permissions);
265  } else {
266  return new ManagementPermissionReference();
267  }
268  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
final RealmModel realm
Definition: GroupResource.java:61
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63
static ManagementPermissionReference toMgmtRef(GroupModel group, AdminPermissionManagement permissions)
Definition: GroupResource.java:239

◆ toMgmtRef()

static ManagementPermissionReference org.keycloak.services.resources.admin.GroupResource.toMgmtRef ( GroupModel  group,
AdminPermissionManagement  permissions 
)
inlinestatic
239  {
240  ManagementPermissionReference ref = new ManagementPermissionReference();
241  ref.setEnabled(true);
242  ref.setResource(permissions.groups().resource(group).getId());
243  ref.setScopePermissions(permissions.groups().getPermissions(group));
244  return ref;
245  }
final GroupModel group
Definition: GroupResource.java:65

◆ updateGroup() [1/2]

void org.keycloak.services.resources.admin.GroupResource.updateGroup ( GroupRepresentation  rep)
inline

Update group, ignores subgroups.

引数
rep
100  {
101  this.auth.groups().requireManage(group);
102 
103  updateGroup(rep, group);
104  adminEvent.operation(OperationType.UPDATE).resourcePath(session.getContext().getUri()).representation(rep).success();
105 
106 
107  }
final KeycloakSession session
Definition: GroupResource.java:62
final GroupModel group
Definition: GroupResource.java:65
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
final AdminEventBuilder adminEvent
Definition: GroupResource.java:64
final AdminPermissionEvaluator auth
Definition: GroupResource.java:63
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
void updateGroup(GroupRepresentation rep)
Definition: GroupResource.java:100

◆ updateGroup() [2/2]

static void org.keycloak.services.resources.admin.GroupResource.updateGroup ( GroupRepresentation  rep,
GroupModel  model 
)
inlinestatic
164  {
165  if (rep.getName() != null) model.setName(rep.getName());
166 
167  if (rep.getAttributes() != null) {
168  Set<String> attrsToRemove = new HashSet<>(model.getAttributes().keySet());
169  attrsToRemove.removeAll(rep.getAttributes().keySet());
170  for (Map.Entry<String, List<String>> attr : rep.getAttributes().entrySet()) {
171  model.setAttribute(attr.getKey(), attr.getValue());
172  }
173 
174  for (String attr : attrsToRemove) {
175  model.removeAttribute(attr);
176  }
177  }
178  }

メンバ詳解

◆ adminEvent

final AdminEventBuilder org.keycloak.services.resources.admin.GroupResource.adminEvent
private

◆ auth

final AdminPermissionEvaluator org.keycloak.services.resources.admin.GroupResource.auth
private

◆ group

final GroupModel org.keycloak.services.resources.admin.GroupResource.group
private

◆ realm

final RealmModel org.keycloak.services.resources.admin.GroupResource.realm
private

◆ session

final KeycloakSession org.keycloak.services.resources.admin.GroupResource.session
private

このクラス詳解は次のファイルから抽出されました: