Hello @vistree, The key difference between using Content Moderation with global roles and the Group module lies in scope, permissions granularity, and context-specific control.
1. Content Moderation with Global Roles
How It Works:
Global roles apply permissions across the entire Drupal site, regardless of the context (e.g., groups, sections).
When used with Content Moderation, global roles define:
Who can access specific moderation states (e.g., Draft, Needs Review, Published).
Who can edit, delete, or view content globally based on permissions.
Advantages:
Simpler and faster to set up for site-wide workflows.
Best for sites that don’t need distinct content ownership or isolated workflows.
Limitations:
No Context-Specific Control: Content Moderation workflows are global. For example, an "Editor" with the ability to "Publish" can publish any content on the site, regardless of its group or section.
No Content Isolation: Users cannot be restricted to specific groups, teams, or sections.
Example:
If an editor role has the "Publish content" permission, they can publish content across the entire site, even if it doesn't belong to their group or team.
2. Group Module
How It Works:
The Group module creates isolated containers for content, users, and permissions.
Each group has its own roles, permissions, and memberships, which override or complement global roles.
Advantages:
Context-Specific Control: Permissions and workflows are isolated per group. For example, a "Marketing Manager" can moderate and publish only within the "Marketing" group.
Better Content Ownership: Content is tied to specific groups, making it easy to enforce boundaries.
Limitations:
More complex to configure compared to global roles.
Requires additional modules or customization to integrate group-specific workflows with Content Moderation.
Example:
An "Editor" role in the "Marketing" group can "Publish" only Marketing content, while a "Sales Manager" in the "Sales" group has similar permissions for Sales content.
3. Do Global Role Settings Have an Effect When Using Group Module?
Yes, global roles still have an effect when using the Group module, but with some nuances:
Group Membership Restriction:
If a user is not a member of a group, their global role permissions won't apply to that group.
For example, a "Content Editor" with global edit permissions cannot edit content in the "Sales" group unless they are added to the group.
Global Role Permissions Extend to Groups:
If a user is assigned both a global role and a group-specific role, their permissions are a combination of both.
Example: A global "Admin" role may bypass group-specific restrictions because their global permissions override group-level settings.
Content Ownership:
Global roles do not inherently understand group ownership. This can lead to unintended permission leakage without careful configuration.
Key Differences Between Global Roles and Group Module
Feature Content Moderation + Global Roles Group Module
Scope Entire site Group-specific (isolated contexts)
Content Isolation No isolation (permissions apply globally) Full isolation (content is tied to specific groups)
Permission Limited (global control) Fine-grained (group-specific roles and permissions)
Granularity
Workflow Site-wide workflows only Requires customization for group-specific workflows
Integration
Use Case Small/medium sites with universal workflows Larger/multi-team sites needing content isolation
When to Use Which?
Global Roles + Content Moderation:
Best for sites where all users follow the same workflows and there’s no need to separate content or users into distinct groups.
Examples: A blog, a corporate site with simple workflows.
Group Module:
Ideal for multi-team environments, where different groups manage their own content and workflows.
Examples: University sites, media platforms, or intranets with distinct departments.
Conclusion
If you’re using the Group module, global roles still matter but act more as a baseline. Group-specific roles add another layer of control for isolated contexts. Content Moderation on its own doesn’t provide the isolation needed for complex workflows, so using it with Group (or similar modules) enables context-specific workflows and permissions.
vinayakmk47 → made their first commit to this issue’s fork.
@darvanen Yes I found That let me provide documentation step by step
Advanced Email Validation: Webform Integration Guide
Overview
The Advanced Email Validation module provides advanced email validation features, such as validating MX records, blocking disposable or public email providers, and supporting custom validation rules. This guide explains how to integrate the module with a Webform email field in Drupal 10.
Pre-requisites
Drupal 10 installed and running.
The following modules enabled:
Webform (v6.2 or later)
Advanced Email Validation (v2.0.2 or later)
Steps to Integrate Advanced Email Validation with Webform
1. Install and Enable Required Modules
Ensure both Webform and Advanced Email Validation modules are installed and enabled.
To enable modules via Drush:
ddev drush en webform advanced_email_validation -y
ddev drush cr
2. Create or Edit a Webform
Go to Structure > Webforms.
Create a new Webform or edit an existing one:
Click on the Build tab of the Webform.
Add an Email or Email Confirm field if it is not already added.
3. Add the Advanced Email Validation Handler
To integrate Advanced Email Validation:
Navigate to the Handlers tab of your Webform:
Example URL:
https:///admin/structure/webform/manage//handlers
Replace with the machine name of your Webform (e.g., registration_form).
Click the Add handler button.
From the list of available handlers, select:
Advanced Email Webform Validator.
Click Add handler to configure it
4. Configure the Validation Handler
In the handler configuration form:
Select the email fields where validation should be applied (e.g., "Email" or "Confirm Email").
If needed, enable Override site defaults to customize the validation rules for this specific Webform.
Customize the following validation rules as required:
Validate email format.
Check MX records (to ensure the domain has valid mail servers).
Block disposable email domains (e.g., mailinator.com).
Block public/free email domains (e.g., gmail.com, yahoo.com).
Use a custom list of banned email providers.
Save the handler configuration.
5. Test the Webform
Open the Webform in Preview mode.
Enter invalid email addresses (e.g., incorrect format, disposable domains).
Submit the form to ensure the validation rules are enforced.
Confirm the error messages appear as expected.
6. Customize Validation Error Messages
If you want to customize the error messages:
Go to Configuration > Advanced Email Validation:
Example URL:
https:///admin/config/system/advanced_email_validation
Modify the error messages for:
Invalid email format.
Disposable email domains.
Public email domains.
Custom banned domains.
Save the changes.
I am using Drupal 10 with the Advanced Email Validation module (v2.0.2) and Webform (v6.2). I want to integrate the Advanced Email Validation module with a Webform email field, but I don’t see any option for the validation handler under the Form Validation section in the Webform field settings.
Hello,
I am using Drupal 10, the Advanced Email Validation module (v2.0.2), and Webform (v6.2). I am trying to validate a Webform email field using the Advanced Email Validation module but cannot find the validation handler in the Webform field settings.
What I’ve Tried:
Installed the module via composer require drupal/advanced_email_validation.
Enabled the module with Drush: ddev drush en advanced_email_validation -y.
Cleared caches using ddev drush cr.
Configured the module under Configuration > Advanced Email Validation.
Expected Behavior:
I expected to see the Advanced Email Validation handler listed in the Form Validation section of the Webform field settings.
Actual Behavior:
I can only see default options like Required, Unique, and Pattern.
Environment:
Drupal: 10.x
Advanced Email Validation: 2.0.2
Webform: 6.2
Request:
How can I integrate the Advanced Email Validation module with a Webform email field? Am I missing a step?
Thank you for your assistance!