Skip to content

Enable configs for omniauth providers at the org level #10

@virgile-dev

Description

@virgile-dev

Info

  • where to code? meta decidim proposal is in status evaluating, meaning this can be coded directly on decidim/decidim master branch and a PR can be made
  • deadline : ideally end of november or first week of December

Specs

This feature aims to enhance the capabilities of the multi-tenant mode of Decidim.

Currently when using multi-tenant, the omniauth config you have for social providers (or other SSO) are made for the whole installation and are shared by all orgs.

Problem is organizations have different hosts and you can only declare one call back with the social providers.

As a super admin (meaning I have access to /system) I want to be able to manage my omniauth configuration where I create and edit the organizations.

For each orgs should be available :

  • All the providers (activated on the installation) and the necessary fieds to set them up ( clients id and client secret)
  • As all the orgs on the same install won't want to activate all the omniauth connectors I'll need a checkbox to activate them one by one so that they display on the sign in and sign up page (and the modals). Alternatively if config fields are not filled the app could understand that it shouldn't activate them.

Task breakdown

  • Add a new form to introduce key/secrets/url for oauth providers through a dynamic form in /system
    • twitter, facebook, google, other Decidims but also custom omniauth setups that might be present on the install, SSO, e-ID protocols that can work with SAML, LDAP etC.. Only for those configured in secrets.yml (as enabled: yes). The system will fallback to the data of secrets.yml if valid data is provided.
  • Add a checkbox to enable/disable the specific provider at multitenant level.
  • Refactor logic to let the system behave accordingly.
  • Tests/PRs to decidim/decidim

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions