more group (bourgeons) configs
This commit is contained in:
@@ -55,6 +55,7 @@ type Group {
|
||||
description: String
|
||||
owner: User
|
||||
members: [User]
|
||||
concernements: [Concernement]
|
||||
}
|
||||
|
||||
# type GroupMember {
|
||||
@@ -67,6 +68,8 @@ type User {
|
||||
email: String
|
||||
username: String
|
||||
roles: [String]
|
||||
concernements: [Concernement]
|
||||
groups: [Group]
|
||||
}
|
||||
|
||||
# type Role {
|
||||
|
||||
@@ -536,17 +536,20 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
// // GroupMembers
|
||||
// $registry->addFieldResolver('GroupMember', 'id',
|
||||
// $builder->produce('entity_id')
|
||||
// ->map('entity', $builder->fromParent())
|
||||
// );
|
||||
// $registry->addFieldResolver('Group', 'concernements',
|
||||
// $builder->compose(
|
||||
// $builder->callback(function ($parent, $args) {
|
||||
// $memberships = $parent->getMembers();
|
||||
// $users = [];
|
||||
// foreach ($memberships as $member) {
|
||||
// $users[] = $member->getUser();
|
||||
// }
|
||||
// return $users;
|
||||
// }),
|
||||
|
||||
// $registry->addFieldResolver('GroupMember', 'user',
|
||||
// $builder->produce('entity_id')
|
||||
// ->map('entity', $builder->fromParent())
|
||||
// )
|
||||
// );
|
||||
|
||||
}
|
||||
|
||||
// __ __
|
||||
@@ -592,6 +595,47 @@ class OuattSchemaExtension extends SdlSchemaExtensionPluginBase {
|
||||
// $builder->produce('entity_label')
|
||||
// ->map('entity', $builder->fromParent())
|
||||
// );
|
||||
|
||||
$registry->addFieldResolver('User', 'concernements',
|
||||
$builder->compose(
|
||||
$builder->callback(function($parent, $arg){
|
||||
$entity_storage = \Drupal::entityTypeManager()->getStorage('node');
|
||||
$query = $entity_storage->getQuery()
|
||||
->condition('type', ['concernement'], 'IN')
|
||||
->condition('uid', $parent->id())
|
||||
->accessCheck(TRUE);
|
||||
$results = $query->execute();
|
||||
return $results;
|
||||
}),
|
||||
$builder->produce('entity_load_multiple')
|
||||
->map('type', $builder->fromValue('node'))
|
||||
->map('ids', $builder->fromParent())
|
||||
)
|
||||
);
|
||||
|
||||
$registry->addFieldResolver('User', 'groups',
|
||||
$builder->compose(
|
||||
$builder->callback(function($parent, $arg){
|
||||
$group_relationship_storage = \Drupal::entityTypeManager()->getStorage('group_relationship');
|
||||
|
||||
$query = $group_relationship_storage->getQuery()
|
||||
->condition('entity_id', $parent->id())
|
||||
->accessCheck(TRUE);
|
||||
$group_relationship_ids = $query->execute();
|
||||
|
||||
$group_relationships = $group_relationship_storage->loadMultiple($group_relationship_ids);
|
||||
|
||||
$group_ids = [];
|
||||
foreach ($group_relationships as $group_relationship) {
|
||||
$group_ids[] = $group_relationship->getGroupId();
|
||||
}
|
||||
return $group_ids;
|
||||
}),
|
||||
$builder->produce('entity_load_multiple')
|
||||
->map('type', $builder->fromValue('group'))
|
||||
->map('ids', $builder->fromParent())
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user