keycloak
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.models.jpa.GroupAdapter クラス
org.keycloak.models.jpa.GroupAdapter の継承関係図
Inheritance graph
org.keycloak.models.jpa.GroupAdapter 連携図
Collaboration graph

公開メンバ関数

 GroupAdapter (RealmModel realm, EntityManager em, GroupEntity group)
 
GroupEntity getEntity ()
 
String getId ()
 
String getName ()
 
void setName (String name)
 
GroupModel getParent ()
 
String getParentId ()
 
void setParent (GroupModel parent)
 
void addChild (GroupModel subGroup)
 
void removeChild (GroupModel subGroup)
 
Set< GroupModelgetSubGroups ()
 
void setSingleAttribute (String name, String value)
 
void setAttribute (String name, List< String > values)
 
void removeAttribute (String name)
 
String getFirstAttribute (String name)
 
List< String > getAttribute (String name)
 
Map< String, List< String > > getAttributes ()
 
boolean hasRole (RoleModel role)
 
void grantRole (RoleModel role)
 
Set< RoleModelgetRealmRoleMappings ()
 
Set< RoleModelgetRoleMappings ()
 
void deleteRoleMapping (RoleModel role)
 
Set< RoleModelgetClientRoleMappings (ClientModel app)
 
boolean equals (Object o)
 
int hashCode ()
 

静的公開メンバ関数

static GroupEntity toEntity (GroupModel model, EntityManager em)
 

限定公開メンバ関数

TypedQuery< GroupRoleMappingEntitygetGroupRoleMappingEntityTypedQuery (RoleModel role)
 

限定公開変数類

GroupEntity group
 
EntityManager em
 
RealmModel realm
 

非公開メンバ関数

void persistAttributeValue (String name, String value)
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ GroupAdapter()

org.keycloak.models.jpa.GroupAdapter.GroupAdapter ( RealmModel  realm,
EntityManager  em,
GroupEntity  group 
)
inline
51  {
52  this.em = em;
53  this.group = group;
54  this.realm = realm;
55  }
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48
RealmModel realm
Definition: GroupAdapter.java:49

関数詳解

◆ addChild()

void org.keycloak.models.jpa.GroupAdapter.addChild ( GroupModel  subGroup)
inline

org.keycloak.models.GroupModelを実装しています。

110  {
111  if (subGroup.getId().equals(getId())) {
112  return;
113  }
114  subGroup.setParent(this);
115  }
String getId()
Definition: GroupAdapter.java:62

◆ deleteRoleMapping()

void org.keycloak.models.jpa.GroupAdapter.deleteRoleMapping ( RoleModel  role)
inline

org.keycloak.models.RoleMapperModelを実装しています。

285  {
286  if (group == null || role == null) return;
287 
288  TypedQuery<GroupRoleMappingEntity> query = getGroupRoleMappingEntityTypedQuery(role);
289  List<GroupRoleMappingEntity> results = query.getResultList();
290  if (results.size() == 0) return;
291  for (GroupRoleMappingEntity entity : results) {
292  em.remove(entity);
293  }
294  em.flush();
295  }
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48
TypedQuery< GroupRoleMappingEntity > getGroupRoleMappingEntityTypedQuery(RoleModel role)
Definition: GroupAdapter.java:235

◆ equals()

boolean org.keycloak.models.jpa.GroupAdapter.equals ( Object  o)
inline
315  {
316  if (this == o) return true;
317  if (o == null || !(o instanceof GroupModel)) return false;
318 
319  GroupModel that = (GroupModel) o;
320  return that.getId().equals(getId());
321  }
String getId()
Definition: GroupAdapter.java:62

◆ getAttribute()

List<String> org.keycloak.models.jpa.GroupAdapter.getAttribute ( String  name)
inline

org.keycloak.models.GroupModelを実装しています。

210  {
211  List<String> result = new ArrayList<>();
212  for (GroupAttributeEntity attr : group.getAttributes()) {
213  if (attr.getName().equals(name)) {
214  result.add(attr.getValue());
215  }
216  }
217  return result;
218  }
Collection< GroupAttributeEntity > getAttributes()
Definition: GroupEntity.java:70
GroupEntity group
Definition: GroupAdapter.java:47

◆ getAttributes()

Map<String, List<String> > org.keycloak.models.jpa.GroupAdapter.getAttributes ( )
inline

org.keycloak.models.GroupModelを実装しています。

221  {
222  MultivaluedHashMap<String, String> result = new MultivaluedHashMap<>();
223  for (GroupAttributeEntity attr : group.getAttributes()) {
224  result.add(attr.getName(), attr.getValue());
225  }
226  return result;
227  }
Collection< GroupAttributeEntity > getAttributes()
Definition: GroupEntity.java:70
GroupEntity group
Definition: GroupAdapter.java:47

◆ getClientRoleMappings()

Set<RoleModel> org.keycloak.models.jpa.GroupAdapter.getClientRoleMappings ( ClientModel  app)
inline

org.keycloak.models.RoleMapperModelを実装しています。

298  {
299  Set<RoleModel> roleMappings = getRoleMappings();
300 
301  Set<RoleModel> roles = new HashSet<RoleModel>();
302  for (RoleModel role : roleMappings) {
303  RoleContainerModel container = role.getContainer();
304  if (container instanceof ClientModel) {
305  ClientModel appModel = (ClientModel)container;
306  if (appModel.getId().equals(app.getId())) {
307  roles.add(role);
308  }
309  }
310  }
311  return roles;
312  }
Set< RoleModel > getRoleMappings()
Definition: GroupAdapter.java:269

◆ getEntity()

GroupEntity org.keycloak.models.jpa.GroupAdapter.getEntity ( )
inline
57  {
58  return group;
59  }
GroupEntity group
Definition: GroupAdapter.java:47

◆ getFirstAttribute()

String org.keycloak.models.jpa.GroupAdapter.getFirstAttribute ( String  name)
inline

org.keycloak.models.GroupModelを実装しています。

200  {
201  for (GroupAttributeEntity attr : group.getAttributes()) {
202  if (attr.getName().equals(name)) {
203  return attr.getValue();
204  }
205  }
206  return null;
207  }
Collection< GroupAttributeEntity > getAttributes()
Definition: GroupEntity.java:70
GroupEntity group
Definition: GroupAdapter.java:47

◆ getGroupRoleMappingEntityTypedQuery()

TypedQuery<GroupRoleMappingEntity> org.keycloak.models.jpa.GroupAdapter.getGroupRoleMappingEntityTypedQuery ( RoleModel  role)
inlineprotected
235  {
236  TypedQuery<GroupRoleMappingEntity> query = em.createNamedQuery("groupHasRole", GroupRoleMappingEntity.class);
237  query.setParameter("group", getEntity());
238  query.setParameter("roleId", role.getId());
239  return query;
240  }
EntityManager em
Definition: GroupAdapter.java:48
GroupEntity getEntity()
Definition: GroupAdapter.java:57

◆ getId()

String org.keycloak.models.jpa.GroupAdapter.getId ( )
inline

org.keycloak.models.GroupModelを実装しています。

62  {
63  return group.getId();
64  }
GroupEntity group
Definition: GroupAdapter.java:47
String getId()
Definition: GroupEntity.java:62

◆ getName()

String org.keycloak.models.jpa.GroupAdapter.getName ( )
inline

org.keycloak.models.GroupModelを実装しています。

67  {
68  return group.getName();
69  }
GroupEntity group
Definition: GroupAdapter.java:47
String getName()
Definition: GroupEntity.java:78

◆ getParent()

GroupModel org.keycloak.models.jpa.GroupAdapter.getParent ( )
inline

org.keycloak.models.GroupModelを実装しています。

77  {
78  GroupEntity parent = group.getParent();
79  if (parent == null) return null;
80  return realm.getGroupById(parent.getId());
81  }
GroupModel getGroupById(String id)
GroupEntity group
Definition: GroupAdapter.java:47
GroupEntity getParent()
Definition: GroupEntity.java:94
RealmModel realm
Definition: GroupAdapter.java:49

◆ getParentId()

String org.keycloak.models.jpa.GroupAdapter.getParentId ( )
inline

org.keycloak.models.GroupModelを実装しています。

84  {
85  GroupEntity parent = group.getParent();
86  if (parent == null) return null;
87  return parent.getId();
88  }
GroupEntity group
Definition: GroupAdapter.java:47
GroupEntity getParent()
Definition: GroupEntity.java:94
String getId()
Definition: GroupEntity.java:62

◆ getRealmRoleMappings()

Set<RoleModel> org.keycloak.models.jpa.GroupAdapter.getRealmRoleMappings ( )
inline

org.keycloak.models.RoleMapperModelを実装しています。

254  {
255  Set<RoleModel> roleMappings = getRoleMappings();
256 
257  Set<RoleModel> realmRoles = new HashSet<RoleModel>();
258  for (RoleModel role : roleMappings) {
259  RoleContainerModel container = role.getContainer();
260  if (container instanceof RealmModel) {
261  realmRoles.add(role);
262  }
263  }
264  return realmRoles;
265  }
Set< RoleModel > getRoleMappings()
Definition: GroupAdapter.java:269

◆ getRoleMappings()

Set<RoleModel> org.keycloak.models.jpa.GroupAdapter.getRoleMappings ( )
inline

org.keycloak.models.RoleMapperModelを実装しています。

269  {
270  // we query ids only as the role might be cached and following the @ManyToOne will result in a load
271  // even if we're getting just the id.
272  TypedQuery<String> query = em.createNamedQuery("groupRoleMappingIds", String.class);
273  query.setParameter("group", getEntity());
274  List<String> ids = query.getResultList();
275  Set<RoleModel> roles = new HashSet<RoleModel>();
276  for (String roleId : ids) {
277  RoleModel roleById = realm.getRoleById(roleId);
278  if (roleById == null) continue;
279  roles.add(roleById);
280  }
281  return roles;
282  }
EntityManager em
Definition: GroupAdapter.java:48
RealmModel realm
Definition: GroupAdapter.java:49
GroupEntity getEntity()
Definition: GroupAdapter.java:57
RoleModel getRoleById(String id)

◆ getSubGroups()

Set<GroupModel> org.keycloak.models.jpa.GroupAdapter.getSubGroups ( )
inline

org.keycloak.models.GroupModelを実装しています。

126  {
127  TypedQuery<String> query = em.createNamedQuery("getGroupIdsByParent", String.class);
128  query.setParameter("parent", group);
129  List<String> ids = query.getResultList();
130  Set<GroupModel> set = new HashSet<>();
131  for (String id : ids) {
132  GroupModel subGroup = realm.getGroupById(id);
133  if (subGroup == null) continue;
134  set.add(subGroup);
135  }
136  return set;
137  }
GroupModel getGroupById(String id)
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48
RealmModel realm
Definition: GroupAdapter.java:49

◆ grantRole()

void org.keycloak.models.jpa.GroupAdapter.grantRole ( RoleModel  role)
inline

org.keycloak.models.RoleMapperModelを実装しています。

243  {
244  if (hasRole(role)) return;
245  GroupRoleMappingEntity entity = new GroupRoleMappingEntity();
246  entity.setGroup(getEntity());
247  entity.setRoleId(role.getId());
248  em.persist(entity);
249  em.flush();
250  em.detach(entity);
251  }
EntityManager em
Definition: GroupAdapter.java:48
GroupEntity getEntity()
Definition: GroupAdapter.java:57
boolean hasRole(RoleModel role)
Definition: GroupAdapter.java:230

◆ hashCode()

int org.keycloak.models.jpa.GroupAdapter.hashCode ( )
inline
324  {
325  return getId().hashCode();
326  }
String getId()
Definition: GroupAdapter.java:62

◆ hasRole()

boolean org.keycloak.models.jpa.GroupAdapter.hasRole ( RoleModel  role)
inline

org.keycloak.models.RoleMapperModelを実装しています。

230  {
231  Set<RoleModel> roles = getRoleMappings();
232  return RoleUtils.hasRole(roles, role);
233  }
Set< RoleModel > getRoleMappings()
Definition: GroupAdapter.java:269

◆ persistAttributeValue()

void org.keycloak.models.jpa.GroupAdapter.persistAttributeValue ( String  name,
String  value 
)
inlineprivate
177  {
178  GroupAttributeEntity attr = new GroupAttributeEntity();
179  attr.setId(KeycloakModelUtils.generateId());
180  attr.setName(name);
181  attr.setValue(value);
182  attr.setGroup(group);
183  em.persist(attr);
184  group.getAttributes().add(attr);
185  }
Collection< GroupAttributeEntity > getAttributes()
Definition: GroupEntity.java:70
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48

◆ removeAttribute()

void org.keycloak.models.jpa.GroupAdapter.removeAttribute ( String  name)
inline

org.keycloak.models.GroupModelを実装しています。

188  {
189  Iterator<GroupAttributeEntity> it = group.getAttributes().iterator();
190  while (it.hasNext()) {
191  GroupAttributeEntity attr = it.next();
192  if (attr.getName().equals(name)) {
193  it.remove();
194  em.remove(attr);
195  }
196  }
197  }
Collection< GroupAttributeEntity > getAttributes()
Definition: GroupEntity.java:70
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48

◆ removeChild()

void org.keycloak.models.jpa.GroupAdapter.removeChild ( GroupModel  subGroup)
inline

org.keycloak.models.GroupModelを実装しています。

118  {
119  if (subGroup.getId().equals(getId())) {
120  return;
121  }
122  subGroup.setParent(null);
123  }
String getId()
Definition: GroupAdapter.java:62

◆ setAttribute()

void org.keycloak.models.jpa.GroupAdapter.setAttribute ( String  name,
List< String >  values 
)
inline

org.keycloak.models.GroupModelを実装しています。

167  {
168  // Remove all existing
169  removeAttribute(name);
170 
171  // Put all new
172  for (String value : values) {
173  persistAttributeValue(name, value);
174  }
175  }
void persistAttributeValue(String name, String value)
Definition: GroupAdapter.java:177
void removeAttribute(String name)
Definition: GroupAdapter.java:188

◆ setName()

void org.keycloak.models.jpa.GroupAdapter.setName ( String  name)
inline

org.keycloak.models.GroupModelを実装しています。

72  {
73  group.setName(name);
74  }
GroupEntity group
Definition: GroupAdapter.java:47
void setName(String name)
Definition: GroupEntity.java:82

◆ setParent()

void org.keycloak.models.jpa.GroupAdapter.setParent ( GroupModel  parent)
inline

org.keycloak.models.GroupModelを実装しています。

98  {
99  if (parent == null) group.setParent(null);
100  else if (parent.getId().equals(getId())) {
101  return;
102  }
103  else {
104  GroupEntity parentEntity = toEntity(parent, em);
105  group.setParent(parentEntity);
106  }
107  }
static GroupEntity toEntity(GroupModel model, EntityManager em)
Definition: GroupAdapter.java:90
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48
void setParent(GroupEntity parent)
Definition: GroupEntity.java:98
String getId()
Definition: GroupAdapter.java:62

◆ setSingleAttribute()

void org.keycloak.models.jpa.GroupAdapter.setSingleAttribute ( String  name,
String  value 
)
inline

org.keycloak.models.GroupModelを実装しています。

140  {
141  boolean found = false;
142  List<GroupAttributeEntity> toRemove = new ArrayList<>();
143  for (GroupAttributeEntity attr : group.getAttributes()) {
144  if (attr.getName().equals(name)) {
145  if (!found) {
146  attr.setValue(value);
147  found = true;
148  } else {
149  toRemove.add(attr);
150  }
151  }
152  }
153 
154  for (GroupAttributeEntity attr : toRemove) {
155  em.remove(attr);
156  group.getAttributes().remove(attr);
157  }
158 
159  if (found) {
160  return;
161  }
162 
163  persistAttributeValue(name, value);
164  }
Collection< GroupAttributeEntity > getAttributes()
Definition: GroupEntity.java:70
void persistAttributeValue(String name, String value)
Definition: GroupAdapter.java:177
GroupEntity group
Definition: GroupAdapter.java:47
EntityManager em
Definition: GroupAdapter.java:48

◆ toEntity()

static GroupEntity org.keycloak.models.jpa.GroupAdapter.toEntity ( GroupModel  model,
EntityManager  em 
)
inlinestatic
90  {
91  if (model instanceof GroupAdapter) {
92  return ((GroupAdapter)model).getEntity();
93  }
94  return em.getReference(GroupEntity.class, model.getId());
95  }
GroupAdapter(RealmModel realm, EntityManager em, GroupEntity group)
Definition: GroupAdapter.java:51
EntityManager em
Definition: GroupAdapter.java:48

メンバ詳解

◆ em

EntityManager org.keycloak.models.jpa.GroupAdapter.em
protected

◆ group

GroupEntity org.keycloak.models.jpa.GroupAdapter.group
protected

◆ realm

RealmModel org.keycloak.models.jpa.GroupAdapter.realm
protected

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