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 Public Site #151

Comments

@srenault-meeds
Copy link
Member

srenault-meeds commented Jul 17, 2024

Rationale

Meeds provides an option to create subgroups thanks to spaces.
Rules to access the space depends on the space admin's will. Indeed, it can be completely private (unlisted / closed) while it can be open to anyone.

The problem is that when a user wants to know more about the space, its goal or its members, the user has to join the space.
In the meantime, other social network tools provide easy way to display these informations to non member.
This helps user to know if that can be interesting to join it or to request to join it.
Moreover, even closed spaces but listed can get the need to publish what the community is working on with a simple description, news, etc.

Currently, it is not possible. So we propose to provide an option to publish a space public site.

1. Functional Requirements

Top User Stories

Space administrators will have a new option from the settings of their space to enable, edit and manage a space public site.

image

When accessing it, they'd be able to:

  • Make it visible for:
  1. space admins only (default value)
  2. Members only
  3. Users only (excl. external users)
  4. Users & External Users
  5. Anyone (even non platform members)
  • access the edition of the public site
  • copy link

URN: PrettyName of the space at the time the Space Public Site is created
The edition / customization of the name of the space will be worked during a dedicated MIP for Space URL IMPV.

Precision: In case the space is hidden, then it will not be possible to make it visible. An information will be sent to the user (tooltip or text) so he is aware about it

image

When editing the public site, they will see a default layout provided with:

  • Space banner
  • description
  • admins
  • members
    For this, we need to create 3 portlets:
  • Description
  • Members
  • Admins

They will be able to:

  • edit the layout so they can add more apps or so they can review the layout if needed
  • view as a user
image

Once the public site is made visible, then:

  • Name of the space public site

Default name = space name. From the space public site edition drawer, option to set another name (see above)
URL= /portal/[name of the site]

  • Members of the space can access it through an info added in the space home layout (description app):
image

In that case, they have a "Enter" CTA from the topbar to access the space in the same tab

  • Non members of the space can access it by clicking to the space card / space name when not being member of it

In that case, they have a "Join" or "Request" CTA or nothing from the topbar to request to join the space when possible

image
  • Non members of the platform can access it thanks to shared link

In that case, they have a "Login" / " Sign up" CTA from the topbar to login / sign up into the platform
When doing so, then, depending on the ability to access the space (open / validation / closed), they will be considered as a member (open) or requester (validation). That way, they can find this space in their spaces list once joined.

image

Impacts

Gamification

--

Notifications

--

Analytics

--

Unified Search

Access the space public site when searching for the space and not member

2. Technical Requirements

Expected Volume & Performance

Security

The Space ACL and roles management has to remain as it is currently (No change is needed to ACL model).

Extensibility

N/A

Configurability

N/A

Upgradability

N/A

Existing Features

The Space Access Page has to remain as is to be used for spaces not having a published public site visible to the connected user.

Feature Flags

N/A

Other Non Functional Requirements

N/A

3. Software Architecture

Security

The Space Access check algorithm defined in SpaceAccessHandler has to remain as is and should evolve to allow redirection to space public site switch required business logic.

Access

  • Three new Portlets will be added for Members, Managers and Description
  • The existing Portlet SpaceInfos will remain to not break existing spaces pages and let the upgrade be made manually when needed/requested by the space manager
  • A new dedicated REST endpoint will be used to allow manage the Space Publication properties only (The Space manager doesn't have access to change the site layout nor configuration through regular REST endpoints, thus a dedicated endpoint has to be added to allow such operation)

Services & processing

  • The SpaceAccessHandler has to evolve to let users access by default to public site when it's published
  • The Permanent Link API will be used to be able to copy the direct access link to the public site independently from its uri
  • The Space public sites will remain all time as standalone sites
  • The site access permissions will be used to store the user preference

Data and persistence

  • A new field PUBLIC_SITE_ID will be added in SOC_SPACES TABLE to reference the public site technical identifier even when not published
  • A new field PUBLIC_SITE_VISIBILITY will be used as a flag to store the choice of Space public site visibility.
  • The existing field PORTAL_SITES.PROPERTIES will be used to set the new property SPACE_ID to reference the associated space
  • The existing field PORTAL_SITES.PROPERTIES will be used to set the new property IS_SPACE_PUBLIC_SITE as a flag with default value true (could be useful for future usages, especially when having more than one site associated to the space)
@srenault-meeds srenault-meeds moved this from Open to Draft in MIP Board Jul 17, 2024
@srenault-meeds srenault-meeds moved this from Draft to Planif in MIP Board Jul 17, 2024
@srenault-meeds srenault-meeds moved this from Planif to Draft in MIP Board Jul 17, 2024
@srenault-meeds srenault-meeds changed the title [DRAFT] Space Public Site Space Public Site Sep 11, 2024
@srenault-meeds srenault-meeds moved this from Draft to Open in MIP Board Sep 11, 2024
@srenault-meeds srenault-meeds moved this from Open to Submitted in MIP Board Sep 17, 2024
@srenault-meeds
Copy link
Member Author

To check please @margondicco
Thanks

@margondicco
Copy link

Hello my points

Point 1

Space administrators AND space managers will have a new option from the settings of their space to enable, edit and manage a space public site.

only spaces managers if the platorm administrator add the permissions in space management ?

Point 2
can i open the public site of the space form the space directory ?

Point 3
as we did with the portlet top bar login, could it be possible to add a dedicated portlet for the action "Joint "Request", etc. in order to customize the standard page. For exemple if i want to add the button in another place.

Thank you

@srenault-meeds
Copy link
Member Author

Hello,

Point 1

My bad. No space admins can enable & manage public site

Point 2
Can i open the public site of the space form the space directory ?

Yes, when not member of the space, you click to the card, it sends you to the space public site
And if member, you can access the space public site from the description app.

Point 3
as we did with the portlet top bar login, could it be possible to add a dedicated portlet for the action "Joint "Request", etc. in order to customize the standard page. For exemple if i want to add the button in another place.

I don't understand the feedback. Let's discuss it :)

@margondicco
Copy link

Go fonc

@srenault-meeds
Copy link
Member Author

Added requirements:

  • If Name (URI) already used, then error so the user sets a new name
  • If Name (URI) previously used by another space BUT deleted, then ability to use the same URI
  • Option to make the public site the default home for space members
  • If the space is hidden, this won't be possible to make the space public site enabled.

@boubaker boubaker self-assigned this Sep 26, 2024
@boubaker
Copy link
Member

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

@boubaker boubaker removed their assignment Sep 26, 2024
boubaker added a commit to Meeds-io/social that referenced this issue Sep 26, 2024
…#151

This change will implement a new portlet that will be used in Space Home Page. In addition, a new Handler has been added to get a direct access to a space with its id.
boubaker added a commit to Meeds-io/social that referenced this issue Sep 26, 2024
…#151

This change will implement a new portlet that will be used in Space Home Page. In addition, a new Handler has been added to get a direct access to a space with its id.
boubaker added a commit to Meeds-io/social that referenced this issue Sep 26, 2024
…#151 (#4068)

This change will implement a new portlet that will be used in Space Home
Page. In addition, a new Handler has been added to get a direct access
to a space with its id.
boubaker added a commit to Meeds-io/meeds that referenced this issue Sep 26, 2024
…eeds-io/MIPs#151

This change will delete the Space info portlet and replace it from Home, in order to replace it by the Space description portlet. In addition, this change will introduce the Spaces Handler which will give the possibility to have a direct access to a space switch its id instead of pretty name.
boubaker added a commit to Meeds-io/meeds that referenced this issue Sep 26, 2024
…eeds-io/MIPs#151 (#2436)

This change will delete the Space info portlet and replace it from Home,
in order to replace it by the Space description portlet. In addition,
this change will introduce the Spaces Handler which will give the
possibility to have a direct access to a space switch its id instead of
pretty name.
exo-swf pushed a commit to Meeds-io/social that referenced this issue Sep 27, 2024
…#151 (#4068)

This change will implement a new portlet that will be used in Space Home
Page. In addition, a new Handler has been added to get a direct access
to a space with its id.
exo-swf pushed a commit to Meeds-io/meeds that referenced this issue Sep 27, 2024
…eeds-io/MIPs#151 (#2436)

This change will delete the Space info portlet and replace it from Home,
in order to replace it by the Space description portlet. In addition,
this change will introduce the Spaces Handler which will give the
possibility to have a direct access to a space switch its id instead of
pretty name.
exo-swf pushed a commit to Meeds-io/layout that referenced this issue Oct 7, 2024
…#151

This change will replace Space Infos portlet by three portlet instances definition in Applications List portlet.
exo-swf pushed a commit to Meeds-io/layout that referenced this issue Oct 7, 2024
… State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#225)

This change will update UserACL usage to not implicitly use the current
conversation state of authenticated user.
exo-swf pushed a commit to Meeds-io/analytics that referenced this issue Oct 7, 2024
… State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#228)

This change will update UserACL usage to not implicitly use the current
conversation state of authenticated user.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 7, 2024
This change ensure to use a boolean value for a Javascript variable which has been made string while should be of type boolean.
exo-swf pushed a commit to Meeds-io/gamification that referenced this issue Oct 7, 2024
… State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#1745)

This change will update UserACL usage to not implicitly use the current
conversation state of authenticated user.
exo-swf pushed a commit to Meeds-io/kudos that referenced this issue Oct 7, 2024
…event - MEED-7475 - Meeds-io/MIPs#151

This change ensures to use extensionRegistry trigger rather than a custom trigger to define extensions which is redundant.
exo-swf pushed a commit to Meeds-io/kudos that referenced this issue Oct 7, 2024
… State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#530)

This change will update UserACL usage to not implicitly use the current
conversation state of authenticated user.
exo-swf pushed a commit to Meeds-io/wallet that referenced this issue Oct 7, 2024
…event - MEED-7475 - Meeds-io/MIPs#151

This change ensures to use extensionRegistry trigger rather than a custom trigger to define extensions which is redundant.
exo-swf pushed a commit to Meeds-io/notes that referenced this issue Oct 7, 2024
exo-swf pushed a commit to Meeds-io/notes that referenced this issue Oct 7, 2024
… State in Service Layer - MEED-7555 - Meeds-io/MIPs#151 (#1146)

This change will update UserACL usage to not implicitly use the current
conversation state of authenticated user.
rdenarie pushed a commit to Meeds-io/meeds that referenced this issue Oct 7, 2024
…eeds-io/MIPs#151 (#2436)

This change will delete the Space info portlet and replace it from Home,
in order to replace it by the Space description portlet. In addition,
this change will introduce the Spaces Handler which will give the
possibility to have a direct access to a space switch its id instead of
pretty name.
rdenarie pushed a commit to Meeds-io/meeds that referenced this issue Oct 7, 2024
…-io/MIPs#151 (#2438)

This change will add Space Members Widget in Space Home Page.
rdenarie pushed a commit to Meeds-io/meeds that referenced this issue Oct 7, 2024
…7451 - Meeds-io/MIPs#151

This change will remove the Space Infos portlet from portlet instances definitions.
rdenarie pushed a commit to Meeds-io/meeds that referenced this issue Oct 7, 2024
…2439)

This change will introduce the space public site template.
@boubaker boubaker added this to the 7.0.0-M16 milestone Oct 7, 2024
boubaker added a commit to exoplatform/ecms that referenced this issue Oct 7, 2024
This change will adapt the usage of UserACL Service Layer API to explicitly use ConversationState.getCurrent() instead of using it implicitly.
boubaker added a commit to exoplatform/chat-application that referenced this issue Oct 7, 2024
…s-io/MIPs#151

Prior to this change, the chat drawer was always displayed under the other opened drawer due to CSS parent class selector 'miniChatDrawer' which has been made as mandatory in less files to make the Style applied. This change will just move all '.chatDrawer' CSS custom style outside of 'miniChatDrawer' parent selector and will delete the 'attached' attribute from 'exo-drawer' generic Vue component to allow displaying the drawer on top of the other already opened drawers (ex: Space Members Drawer from Space Home Page).
boubaker added a commit to exoplatform/dlp that referenced this issue Oct 7, 2024
This change will adapt the usage of UserACL Service Layer API to explicitly use ConversationState.getCurrent() instead of using it implicitly.
boubaker added a commit to exoplatform/onlyoffice that referenced this issue Oct 7, 2024
This change will adapt the usage of UserACL Service Layer API to explicitly use ConversationState.getCurrent() instead of using it implicitly.
boubaker added a commit to exoplatform/jitsi that referenced this issue Oct 7, 2024
…-7574 - Meeds-io/MIPs#151 (#153)

This change will move Space Members Menu item Styling to the generic Web Conf Button definition.
boubaker added a commit to exoplatform/web-conferencing that referenced this issue Oct 7, 2024
…4 - Meeds-io/MIPs#151 (#336)

This change will move Space Members Menu item Styling from Jitsi (PR exoplatform/jitsi#153) to the generic Web Conf Button definition by adjusting the style to align with new requirements.
boubaker added a commit to exoplatform/data-upgrade that referenced this issue Oct 7, 2024
…o/MIPs#151 (#249)

This change will update MOP Cache constructor signature classes used in Test context.
boubaker added a commit to exoplatform/chat-application that referenced this issue Oct 7, 2024
…s-io/MIPs#151 (#774)

Prior to this change, the chat drawer was always displayed under the other opened drawer due to CSS parent class selector 'miniChatDrawer' which has been made as mandatory in less files to make the Style applied. This change will just move all '.chatDrawer' CSS custom style outside of 'miniChatDrawer' parent selector and will delete the 'attached' attribute from 'exo-drawer' generic Vue component to allow displaying the drawer on top of the other already opened drawers (ex: Space Members Drawer from Space Home Page).
boubaker added a commit to exoplatform/ecms that referenced this issue Oct 7, 2024
This change will adapt the usage of UserACL Service Layer API to explicitly use ConversationState.getCurrent() instead of using it implicitly.
@boubaker boubaker removed the to merge label Oct 7, 2024
boubaker added a commit to Meeds-io/meeds-qa-ui that referenced this issue Oct 8, 2024
exo-swf pushed a commit to Meeds-io/meeds-qa-ui that referenced this issue Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment