Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Space Templates Management #150

Open

Comments

@srenault-meeds
Copy link
Collaborator

srenault-meeds commented Jul 17, 2024

Rationale

The software provides to user one template to use when creating a space. This helps the creator to get a pre configured space (access control, apps) so it is quicker to add a space.

Problems are that:

  • only one template is provided
  • this template cannot be edited
  • new templates cannot be added

1. Functional Requirements

Top User Stories

When accessing the administration site, I can access a templates management page for space templates.
From there, I will be able to:

  • Add new template
  • List existing ones
  • Edit existing ones

Each template must be extensible
So I can

  1. Duplicate it if needed (by UI)
  2. Allow any Product teams to define the layout, the list of apps to be in predefined space templates

For each template, I can:

  • see the icon, the name, the description
  • check which members group can create spaces using each template
  • list spaces created using templates
  • enable / disable the use of templates
  • access options to: edit properties, duplicate, delete

By default, items are sorted alphanumerically

Product Templates cannot be deleted. They can be disabled.
image

When creating a template, then:

  • First, I have to:
    • add a name
    • add a description
    • select an icon
  • Then I will have to decide about the configuration of the template:
    • Mandatory creation steps: does user need to add a name, to invite users, to add properties, to update access control rules when creating the space?
      • Minimum step: Name or Invitation
      • Default config: all steps required
    • Access Control: What is the default rules to access and list the space?
      • Default config: Open / Listed
    • Permissions:
      • Who can create a space? (default: admins)
      • Who can edit navigation of the space? (default: admins)
      • Is the space an editorial one?
        • That means that you can decide if the content creation restriction is ON or OFF
        • If ON, only space admin and content writers can add contents
        • If OFF, any member can add contents
        • Default config: OFF
      • Who can delete a space?
        image

Once saved, the template is listed in the templates list
AND users when creating a space will see it listed in the current dropdown of space templates.
image

Precisions: Default Product Space Template
Remove the current space template
AND add following ones:

Project Community Announcement Circle
Home Layout: 1 section (dynamic) - Column1 (8 columns): News list, feed / Column2 (4 columns): Links with default link to notes and tasks app of space, who's online, description, admins, members Home Layout: 2 sections - Fixed (3 apps with fixed height of 360px): Community leaderboard (filter on the group), Community Programs (filter on the group), Community Actions / Dynamic with column1 (8 columns): Feed AND Column2: who's online, description, admins, members Home Layout: 2 sections - Dynamic with an image portlet / Dynamic with column1 (8 columns): news list, feed and column 2: newslist, description Home Layout: Dynamic section with column1 (8 columns): feed and column 2: Who's online, members
Navigation: Space Home, Tasks, More: Members, Notes, Settings Navigation: Space Home, Notes, More: Wallet, Members, Settings Navigation: Space Home, Members, More: Tasks, Notes, Settings Navigation: Space Home, Members, Apps: Tasks, Notes
Creation Steps: Name, Properties, Access Control, Invitation Creation Steps: Name, Properties, Invitation Creation Steps: Name, Properties Creation Steps: Invitation
Access Control: Invite Only, Listed Access Control: Request Approval, Listed Access Control: Open, Listed Access Control: Invite Only, Hidden
Permissions: Editorial mode off, anyone can create, admins can edit nav, space admins can delete spaces Permissions: Editorial mode off, anyone can create, admins can edit nav, space admins can delete spaces Permissions: Editorial mode on, only admins / web-contributors can create, admins can edit nav, only admins can delete spaces Permissions: Editorial mode off, anyone can create, admins can edit nav, space admins can delete spaces

Precisions: Circles
Circles can be created without giving any name. Indeed, by default, the name is composed of first names of the user:

  • If John creates a circle and invites nobody then call the space John
  • If John creates it and invites Jane at the creation step: call it John, Jane
  • If John creates it and invites Jane and Alfred, call it John, Jane and 1 more
    1 being the number of invited people

When inviting more people after the creation, no change done to the name.
Name can be updated from space settings
No need to make sure the name is already used. Indeed, this can happen if same name used.
Default Avatar is created on this base, as it is currently. Unless it is updated manually of course.

Project Home
image

Community Home
image

Announcement Home
image

Circle Home
image

Impacts

Gamification

NA

Notifications

NA

Analytics

Use of space templates

Unified Search

NA

2. Technical Requirements

Expected Volume & Performance

Security

Space Administrators and Platform Administrators should be able to access Space Templates Management.
The usage of Space Templates has to be restricted switch user permissions, except for Spaces Administrators and Platform Administrators who should be able to manage templates and use it to create spaces independently from specific permissions on the template.
The Space Creation process has to check allowed fields on the space template and to forbid changes from REST calls when the fields aren't allowed switch Space Template Model.
The Layout Editor Button in TopBar should be displayed switch Space Layout Permissions which should be initialized switch Space Template Layout permissions.

Extensibility

The current possibility of SpaceTemplate pages extensibility shouldn't be possible anymore, since the Space Template Layout has to be defined once the Space Template is imported from sources.
Thus, the Space Template definition has to be made in a single location, in Meeds project in sites.war.

The Meeds DAO members will be able to define their own Space Templates without having to inherit automatically the list of Space Templates defined in Meeds.

Configurability

The Space Templates Definition has to be simplified without XML, but with JSON space-templates.json (as made for portlet-instances.json and app center applications.json).

Upgradability

The old Notion of Space Template will be deleted,, thus the TEMPLATE field will be removed and replaced by a field to reference the Template Identifier.

Existing Features

The space creation drawer will reference the new stored templates list switch user permissions.

Feature Flags

N/A

Other Non Functional Requirements

N/A

3. Software Architecture

Security

Access

  • A new portlet has to be added in Administration site to be able to manage space templates
  • A Dedicated REST endpoint has to be added to GET/POST/PUT/DELETE/PATCH Templates

Services & processing

  • The Space creation process will change to be able to restrict space creation switch Space Template Permissions
  • The Space with no name specified has to be created using a generated UUID. The Space Display in this case has to be interperted and internationalized in FrontEnd using I18N files content
  • The Space Settings application has to evolve to allow/deny modification of certain settings switch associated space template
  • When deleting a space template, the flag DELETED has to be turned ON and ENABLED flag to OFF without affecting other space template properties. This will allow to get characteristics of the space template to handle spaces already created with it
  • The Layout Editor Button has to be made visible to all users (*:/platform/users) in order to allow fine check the permissions of the user whether it can be displayed or not switch Space Layout edit-permission field

Note

This new development should use Spring Based Beans and REST endpoints. Thus, the social-portlet Web Archive has to be renamed to social in order to allow having clean REST URLs with pattern /social/rest/.... The Upgrade Plugin io.meeds.layout.plugin.upgrade.LayoutApplicationReferenceUpgradePlugin will be used for each Social Portlet to ensure to update the references in existing pages.

Data and persistence

  • The field TEMPLATE has to be removed from SOC_SPACES to be replaced by a field TEMPLATE_ID to reference the Space Template Entity.
  • A new Table will be added for Space Template Entities:

Space Template Table

@srenault-meeds srenault-meeds changed the title [DRAFT] Space Template Space Templates Edition Oct 9, 2024
@srenault-meeds srenault-meeds changed the title Space Templates Edition Space Templates Management Oct 9, 2024
@srenault-meeds
Copy link
Collaborator Author

To review @margondicco
Thanks

@margondicco
Copy link

margondicco commented Oct 9, 2024

Hello

Minimum step: Name or Member

name or invitation ? isn't it ?

Does the space is an editorial one? (default: no)
i don't understand this point. It's a space with redactor ? What is the purpose ?

Thank you

@srenault-meeds
Copy link
Collaborator Author

name or invitation ? isn't it ?

yes

Editorial space

I have added a meaning so it is easier to understanc:
- Is the space an editorial one?
- That means that you can decide if the content creation restriction is ON or OFF
- If ON, only space admin and content writers can add contents
- If OFF, any member can add contents
- Default config: OFF

Thanks

@margondicco
Copy link

Thank you
Go fonc

@boubaker boubaker self-assigned this Oct 10, 2024
@boubaker
Copy link
Member

Ready for spec review by DAO Members (eXo: @rdenarie )

@boubaker boubaker removed their assignment Oct 10, 2024
boubaker added a commit to Meeds-io/social that referenced this issue Oct 14, 2024
…/MIPs#150

Social Module has two Web Archives, social-extension.war and social-portlet.war. both Web Archives can be combined into a single one social.war  which will be the main Spring context of Social Module and at the same time, used for extension configuration and the Web Archive to use for Portlet Definitions. The webapp module name has to be social.war in order to have clean URLs for REST Endpoints which will be implemented through Spring, with format /social/rest/ instead of /social-portlet/rest.
boubaker added a commit to Meeds-io/meeds that referenced this issue Oct 14, 2024
…/MIPs#150

This change will Modify the pages definition to use 'social' instead of 'social-portlet' to reference the Social Module portlets. See Meeds-io/social@9e0766a for more information about this change.
A dedicated configuration to upgrade the existing pages has been added to upgrade the existing pages to reference the new Webapp Module instead of deleted 'social-portlet' module.
@boubaker
Copy link
Member

Ready for spec review by DAO Members (eXo: @rdenarie )

A new note has been added as agreed for the social-portlet web archive renaming.

boubaker added a commit to Meeds-io/gatein-portal that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to social.
boubaker added a commit to Meeds-io/gatein-portal that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to
social.
boubaker added a commit to Meeds-io/social that referenced this issue Oct 14, 2024
…/MIPs#150 (#4114)

Social Module has two Web Archives, social-extension.war and
social-portlet.war. both Web Archives can be combined into a single one
social.war which will be the main Spring context of Social Module and at
the same time, used for extension configuration and the Web Archive to
use for Portlet Definitions. The webapp module name has to be social.war
in order to have clean URLs for REST Endpoints which will be implemented
through Spring, with format /social/rest/ instead of
/social-portlet/rest.
boubaker added a commit to Meeds-io/meeds that referenced this issue Oct 14, 2024
…/MIPs#150 (#2489)

This change will Modify the pages definition to use 'social' instead of
'social-portlet' to reference the Social Module portlets. See
Meeds-io/social@9e0766a
for more information about this change.
A dedicated configuration to upgrade the existing pages has been added
to upgrade the existing pages to reference the new Webapp Module instead
of deleted 'social-portlet' module.
boubaker added a commit to Meeds-io/layout that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to social.
boubaker added a commit to Meeds-io/layout that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to
social.
boubaker added a commit to Meeds-io/pwa that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to social.
boubaker added a commit to Meeds-io/pwa that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to
social.
boubaker added a commit to Meeds-io/gamification that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to social.
boubaker added a commit to Meeds-io/gamification that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to social.
boubaker added a commit to Meeds-io/perk-store that referenced this issue Oct 14, 2024
This change will rename the Social Web Archive from social-portlet to social.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
…rawer - MEED-7482 - Meeds-io/MIPs#154 - Meeds-io/MIPs#150 (#1758)

This PR will allow to customize date by displaying the profile
achievement drawer.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
This change will rename the Social Web Archive from social-portlet to social.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
This change will delete the usage of SpaceService.getSpaceByUrl which is deleted from Social API.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
This change will delete the usage of getSpaceByDisplayName API since it's not unique anymore
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
 - Meeds-io/MIPs#150 (#1759)

This change will make contributions and contributors widgets contextual
with Space Context.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 26, 2024
…MEED-7649 - Meeds-io/MIPs#150 (#1760)

This change will alllow to display programs widget with the contextual
information of current space rather than displaying all available
programs in the platform.
exo-swf pushed a commit to Meeds-io/wallet that referenced this issue Oct 26, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/wallet that referenced this issue Oct 26, 2024
This change will delete the usage of SpaceService.getSpaceByUrl which is deleted from Social API.
exo-swf pushed a commit to Meeds-io/wallet that referenced this issue Oct 26, 2024
This change will delete the usage of getSpaceByDisplayName API since it's not unique anymore
exo-swf pushed a commit to Meeds-io/wallet that referenced this issue Oct 26, 2024
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 26, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 26, 2024
This change will delete the usage of getSpaceByDisplayName API since it's not unique anymore
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 26, 2024
exo-swf pushed a commit to exoplatform/documents that referenced this issue Oct 26, 2024
This change will adapt Space Service API changes to remove the usage of applications management inside spaces that is replaced by pages layout management.
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 26, 2024
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 26, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 26, 2024
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 26, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 26, 2024
This change will delete the usage of getSpaceByDisplayName API since it's not unique anymore
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 26, 2024
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 27, 2024
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 27, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 27, 2024
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 27, 2024
This change will change Space URL format to reference /portal/s/SPACE_ID/ rather than using Space GROUP_ID and PRETTY_NAME which make it complex to build and not permanent as url.
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 27, 2024
This change will delete the usage of getSpaceByDisplayName API since it's not unique anymore
exo-swf pushed a commit to Meeds-io/task that referenced this issue Oct 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment