Skip to content

Conversation

@mmoqui
Copy link
Member

@mmoqui mmoqui commented Oct 14, 2025

Reify the concept of community: now, among the spaces and the applications, the administrator can create also a community. A community is represented by a Silverpeas space with some peculiar properties (no rights inheritance, no home page modification). Such communities must be motorized by a Silverpeas component (whose goal is, for example, to manage the memberships) that must implement the interface CommunityFactory. This interface allows Silverpeas to bootstrap automatically an instance of the component for the freshly created community space.

Beside the community space is introduced also the community members group that is no more than a users group but dedicated to gather the members of a community. The creation of this group is always at the charge of the Silverpeas component implementing the CommunityFactory interface. For doing, and to ease the management of the members of a community, the CommunityMembershipService is provided.

In the backoffice, the community members groups are now distinguished from the classical user groups.

The following PR requires also to be merged: Silverpeas/Silverpeas-Components#909

@mmoqui mmoqui force-pushed the feature-14962 branch 3 times, most recently from 0e18732 to 342d12c Compare October 15, 2025 15:51
Add a new group implementation for the groups managed directly by a
Silverpeas application (and not by the backoffice).
Add a service with which the implementation of a Silverpeas component
can use to manage such groups.
In the Silverpeas backoffice, the two types of user groups are now distinguished.
Actions on application groups are now forbidden (and hidden) because
those groups are managed by the applications that create them.
When rendering the groups (either in the backoffice or in the user
panel), the groups managed by a user domain are rendered first, then the
groups managed by applications.
Add a mechanism for admin to create explicitly a community space by
keeping the Silverpeas component that motorizes a space as a
community space.
The community space is created like any collaborative space but with
additional operations: the space is marked as a community one and for
doing it has some of its properties set with a predefined value (like
the access rights inheritance blocked). Then the creation of the
component instance dedicated to manage the community membership is
invoked.

To allow this, a new property, isCommunitySpace, is added to the
SpaceInst class and a new interface, CommunityFactory, is defined. This
interface has to be implemented by the already existing Silverpeas
commponent Community (defined in the Silverpeas Components project) so
that Silverpeas Core is decoupled to any code that motorize the
community feature. This feature is enabled if and only if there is an
implementation of the CommunityFactory interface.
Introduce both CommunityMembersGroup and CommunityMembershipService to
allow the application dedicated to work on communities to ease their
administrative tasks with groups of community members and with community
spaces.

Update SQL and DAO to work with the additional fields for space and
groups: respectively 'isCommunitySpace' and 'spaceId'.
Remove the property UseCommunityManagement and the code using it. It
isn't anymore possible to add explicitly a user in a community
members group in the backoffice.
@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 5, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants