more group (bourgeons) configs

This commit is contained in:
Bachir Soussi Chiadmi 2022-11-07 12:05:53 +01:00
parent 2fbdc274b7
commit f9e76d4e4c
15 changed files with 203 additions and 57 deletions

View File

@ -25,7 +25,7 @@
"drupal/flexible_permissions": "@beta",
"drupal/genpass": "^1.1",
"drupal/graphql": "4.x-dev@dev",
"drupal/group": "^3.0@beta",
"drupal/group": "3.0.x-dev@dev",
"drupal/mail_login": "^2.6",
"drupal/paragraphs": "^1.15",
"drupal/restui": "^1.21",

23
src/composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "738ea5aca8b978a6f7588d32987b2071",
"content-hash": "5365133aecbc598c646688e7709f48d0",
"packages": [
{
"name": "alchemy/zippy",
@ -5530,17 +5530,11 @@
},
{
"name": "drupal/group",
"version": "3.0.0-beta3",
"version": "dev-3.0.x",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/group.git",
"reference": "3.0.0-beta3"
},
"dist": {
"type": "zip",
"url": "https://ftp.drupal.org/files/projects/group-3.0.0-beta3.zip",
"reference": "3.0.0-beta3",
"shasum": "87717e1c5defe6157435683bb4ff052c02293863"
"reference": "cf02cb68fc355ff4221910e3d68e128252b1bb81"
},
"require": {
"drupal/core": "^9 || ^10",
@ -5549,12 +5543,15 @@
},
"type": "drupal-module",
"extra": {
"branch-alias": {
"dev-3.0.x": "3.0.x-dev"
},
"drupal": {
"version": "3.0.0-beta3",
"datestamp": "1661862170",
"version": "3.0.0-beta3+1-dev",
"datestamp": "1662110070",
"security-coverage": {
"status": "not-covered",
"message": "Beta releases are not covered by Drupal security advisories."
"message": "Dev releases are not covered by Drupal security advisories."
}
}
},
@ -14038,7 +14035,7 @@
"drupal/audiofield": 20,
"drupal/flexible_permissions": 10,
"drupal/graphql": 20,
"drupal/group": 10,
"drupal/group": 20,
"drupal/typed_data": 20,
"drupal/autocomplete_deluxe": 5,
"drupal/better_exposed_filters": 10,

View File

@ -5,3 +5,9 @@ role_menu_pairs:
-
role: admin
menu: administrator
-
role: group_admin
menu: administrator
-
role: group_member
menu: administrator

View File

@ -5,8 +5,6 @@ dependencies:
config:
- field.field.group_relationship.bourgeon-group_membership.group_roles
- group.relationship_type.bourgeon-group_membership
module:
- path
id: group_relationship.bourgeon-group_membership.default
targetEntityType: group_relationship
bundle: bourgeon-group_membership
@ -14,7 +12,7 @@ mode: default
content:
entity_id:
type: entity_reference_autocomplete
weight: 1
weight: 0
region: content
settings:
match_operator: CONTAINS
@ -24,31 +22,11 @@ content:
third_party_settings: { }
group_roles:
type: options_buttons
weight: 3
weight: 1
region: content
settings: { }
third_party_settings: { }
langcode:
type: language_select
weight: 0
region: content
settings:
include_locked: true
third_party_settings: { }
path:
type: path
weight: 2
region: content
settings: { }
third_party_settings: { }
uid:
type: entity_reference_autocomplete
weight: 4
region: content
settings:
match_operator: CONTAINS
match_limit: 10
size: 60
placeholder: ''
third_party_settings: { }
hidden: { }
hidden:
langcode: true
path: true
uid: true

View File

@ -10,16 +10,23 @@ targetEntityType: group_relationship
bundle: bourgeon-group_membership
mode: default
content:
entity_id:
type: entity_reference_label
label: above
settings:
link: true
third_party_settings: { }
weight: 0
region: content
group_roles:
type: entity_reference_label
label: above
settings:
link: false
third_party_settings: { }
weight: -4
weight: 1
region: content
hidden:
entity_id: true
langcode: true
search_api_excerpt: true
uid: true

View File

@ -0,0 +1,17 @@
uuid: c9499d4c-271f-4de2-80aa-9b676838a14f
langcode: fr
status: true
dependencies:
config:
- group.type.bourgeon
- node.type.concernement
module:
- gnode
- node
id: bourgeon-group_node-concernement
group_type: bourgeon
content_plugin: 'group_node:concernement'
plugin_config:
group_cardinality: 0
entity_cardinality: 1
use_creation_wizard: false

View File

@ -0,0 +1,17 @@
uuid: 0a5ed664-438a-4434-9bec-00dd1402daef
langcode: fr
status: true
dependencies:
config:
- group.type.bourgeon
- node.type.entite
module:
- gnode
- node
id: bourgeon-group_node-entite
group_type: bourgeon
content_plugin: 'group_node:entite'
plugin_config:
group_cardinality: 0
entity_cardinality: 1
use_creation_wizard: false

View File

@ -0,0 +1,12 @@
uuid: 21139a98-5b43-45a4-8c43-d9d134a6e492
langcode: fr
status: true
dependencies: { }
id: bourgeon-admin_indiv
label: admin
weight: null
admin: true
scope: individual
global_role: null
group_type: bourgeon
permissions: { }

View File

@ -12,3 +12,9 @@ group_type: bourgeon
permissions:
- 'view group'
- 'view group_membership relationship'
- 'create group_node:concernement entity'
- 'view unpublished group_node:concernement entity'
- 'view group_node:concernement entity'
- 'create group_node:entite entity'
- 'view unpublished group_node:entite entity'
- 'access group_node overview'

View File

@ -0,0 +1,20 @@
uuid: d5b298ce-ff97-4b13-884d-959cff923a7a
langcode: fr
status: true
dependencies: { }
id: bourgeon-member_indiv
label: member
weight: null
admin: false
scope: individual
global_role: null
group_type: bourgeon
permissions:
- 'view group'
- 'view group_membership relationship'
- 'access group_node overview'
- 'create group_node:concernement entity'
- 'view unpublished group_node:concernement entity'
- 'view group_node:concernement entity'
- 'create group_node:entite entity'
- 'view unpublished group_node:entite entity'

View File

@ -6,6 +6,6 @@ id: bourgeon
label: Bourgeon
description: ''
new_revision: true
creator_membership: true
creator_wizard: true
creator_membership: false
creator_wizard: false
creator_roles: { }

View File

@ -2,18 +2,38 @@ uuid: 0dd28526-9c5f-46ce-a40d-8889503e420b
langcode: fr
status: true
dependencies:
config:
- node.type.concernement
- node.type.entite
module:
- administerusersbyrole
- node
- role_delegation
- system
- toolbar
id: group_admin
label: 'group admin'
weight: -3
is_admin: null
permissions:
- 'access administration pages'
- 'access toolbar'
- 'access users overview'
- 'assign group_member role'
- 'cancel users with role group_member'
- 'create concernement content'
- 'create entite content'
- 'create users'
- 'edit own concernement content'
- 'edit own entite content'
- 'edit users by role'
- 'edit users with role group_member'
- 'revert concernement revisions'
- 'revert entite revisions'
- 'role-assign users with role group_member'
- 'view concernement revisions'
- 'view entite revisions'
- 'view own unpublished content'
- 'view the administration theme'
- 'view users by role'
- 'view users with role group_member'

View File

@ -1,9 +1,28 @@
uuid: b00d65da-067b-449f-85e1-8b38ac043348
langcode: fr
status: true
dependencies: { }
dependencies:
config:
- node.type.concernement
- node.type.entite
module:
- node
- system
- toolbar
id: group_member
label: 'group member'
weight: -2
is_admin: null
permissions: { }
permissions:
- 'access administration pages'
- 'access toolbar'
- 'create concernement content'
- 'create entite content'
- 'edit own concernement content'
- 'edit own entite content'
- 'revert concernement revisions'
- 'revert entite revisions'
- 'view concernement revisions'
- 'view entite revisions'
- 'view own unpublished content'
- 'view the administration theme'

View File

@ -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 {

View File

@ -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())
)
);
}