more group (bourgeons) configs
This commit is contained in:
parent
2fbdc274b7
commit
f9e76d4e4c
@ -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
23
src/composer.lock
generated
@ -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,
|
||||
|
@ -5,3 +5,9 @@ role_menu_pairs:
|
||||
-
|
||||
role: admin
|
||||
menu: administrator
|
||||
-
|
||||
role: group_admin
|
||||
menu: administrator
|
||||
-
|
||||
role: group_member
|
||||
menu: administrator
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
12
src/config/sync/group.role.bourgeon-admin_indiv.yml
Normal file
12
src/config/sync/group.role.bourgeon-admin_indiv.yml
Normal 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: { }
|
@ -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'
|
||||
|
20
src/config/sync/group.role.bourgeon-member_indiv.yml
Normal file
20
src/config/sync/group.role.bourgeon-member_indiv.yml
Normal 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'
|
@ -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: { }
|
||||
|
@ -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'
|
||||
|
@ -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'
|
||||
|
@ -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())
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user