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

renamed omniauth-juanita to omniauth-idmty and modified addresses #142

Merged
merged 4 commits into from
Aug 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/docker-image-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ jobs:
uses: VaultVulp/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
image-name: production
image-tag: 1.2-beta
image-name: 1.3-beta
custom-args: --build-arg RAILS_ENV=production --build-arg FORCE_SSL=false --build-arg SECRET_KEY_BASE=${{ secrets.SECRET_KEY_BASE }} --build-arg MAILER_SENDER=${{ secrets.MAILER_SENDER }}
dockerfile: docker/decidim.Dockerfile
build-context: .
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ gem "dotenv-rails", groups: [:development, :test, :production]

gem "decidim", DECIDIM_VERSION
gem "decidim-ine", path: "decidim-module-ine"
gem "omniauth-juanita", path: "omniauth-juanita"
gem "omniauth-idmty", path: "omniauth-idmty"

gem "bootsnap", "~> 1.3"
gem "puma", ">= 5.0.0"
Expand Down
8 changes: 4 additions & 4 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ PATH
decidim-verifications (= 0.26.3)

PATH
remote: omniauth-juanita
remote: omniauth-idmty
specs:
omniauth-juanita (0.0.1)
omniauth-idmty (0.0.1)
omniauth (~> 2)
openid_connect (~> 2.2.0)

Expand Down Expand Up @@ -774,7 +774,7 @@ GEM
thor (1.2.1)
thread_safe (0.3.6)
tilt (2.0.11)
timeout (0.3.2)
timeout (0.4.0)
tomlrb (2.0.3)
tzinfo (1.2.11)
thread_safe (~> 0.1)
Expand Down Expand Up @@ -853,7 +853,7 @@ DEPENDENCIES
figaro
letter_opener_web (~> 1.3)
listen (~> 3.1)
omniauth-juanita!
omniauth-idmty!
pry
puma (>= 5.0.0)
ripper-tags
Expand Down
423 changes: 0 additions & 423 deletions app/packs/images/juanita.svg

This file was deleted.

54 changes: 54 additions & 0 deletions app/packs/images/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions app/packs/stylesheets/decidim/_monterrey.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
$idmty: #7c4cfe;

:root{
--idmty: #{$idmty};
}

/* Mixins */

@mixin for-phone-only {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
if Rails.application.secrets.dig(:omniauth, :juanita).present?
if Rails.application.secrets.dig(:omniauth, :idmty).present?
Rails.application.config.middleware.use OmniAuth::Builder do
provider(
:juanita,
:idmty,
setup: ->(env) {
request = Rack::Request.new(env)
organization = Decidim::Organization.find_by(host: request.host)

provider_config = organization.enabled_omniauth_providers[:juanita]
provider_config = organization.enabled_omniauth_providers[:idmty]
env["omniauth.strategy"].options[:client_options] = {
identifier: provider_config[:client_id],
secret: provider_config[:client_secret],
Expand Down
2 changes: 1 addition & 1 deletion config/locales/decidim-system/es.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ es:
system:
organizations:
omniauth_settings:
juanita:
idmty:
site_url: URL del host
client_id: client_id
client_secret: client_secret
Expand Down
25 changes: 17 additions & 8 deletions config/secrets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,16 @@ default: &default
icon_path: decidim/brands/google.svg
client_id: <%= ENV["OMNIAUTH_GOOGLE_CLIENT_ID"] %>
client_secret: <%= ENV["OMNIAUTH_GOOGLE_CLIENT_SECRET"] %>
juanita:
idmty:
enabled: true
color: nil
site_url: nil
client_id: nil
client_secret: nil
redirect_uri: nil
icon_path: media/images/juanita.svg
icon_path: media/images/logo.svg
juanita:
enabled: false
maps:
api_key: <%= ENV["MAPS_API_KEY"] %>
etherpad:
Expand Down Expand Up @@ -74,13 +77,15 @@ development:
developer:
enabled: true
icon: phone
juanita:
idmty:
enabled: true
site_url: nil
client_id: nil
client_secret: nil
redirect_uri: nil
icon_path: nil
icon_path: media/images/logo.svg
juanita:
enabled: false

test:
<<: *default
Expand All @@ -98,13 +103,15 @@ test:
enabled: true
client_id:
client_secret:
juanita:
idmty:
enabled: true
site_url: nil
client_id: nil
client_secret: nil
redirect_uri: nil
icon_path: nil
icon_path: media/images/logo.svg
juanita:
enabled: false

# Do not keep production secrets in the repository,
# instead read values from the environment.
Expand All @@ -128,10 +135,12 @@ production:
number_of_trustees: <%= ENV["ELECTIONS_NUMBER_OF_TRUSTEES"] %>
quorum: <%= ENV["ELECTIONS_QUORUM"] %>
omniauth:
juanita:
idmty:
enabled: true
site_url: nil
client_id: nil
client_secret: nil
redirect_uri: nil
icon_path: media/images/juanita.svg
icon_path: media/images/logo.svg
juanita:
enabled: false
4 changes: 2 additions & 2 deletions docker/decidim.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ COPY Gemfile .
COPY Gemfile.lock .
COPY decidim-module-ine/decidim-ine.gemspec ./decidim-module-ine/
COPY decidim-module-ine/lib/decidim/ine/version.rb ./decidim-module-ine/lib/decidim/ine/
COPY omniauth-juanita/omniauth-juanita.gemspec ./omniauth-juanita/
COPY omniauth-juanita/lib/omniauth/omniauth-juanita/version.rb ./omniauth-juanita/lib/omniauth/omniauth-juanita/
COPY omniauth-idmty/omniauth-idmty.gemspec ./omniauth-idmty/
COPY omniauth-idmty/lib/omniauth/omniauth-idmty/version.rb ./omniauth-idmty/lib/omniauth/omniauth-idmty/
RUN bundle check || bundle install --jobs=4
COPY . .
RUN yarn install
Expand Down
24 changes: 12 additions & 12 deletions docs/omniauth_juanita.md → docs/omniauth_idmty.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Integración Decidim con omniauth-juanita
# Integración Decidim con omniauth-idmty

Para integrar el servicio de omniauth-juanita con Decidim, bastan los siguientes 5 pasos:
Para integrar el servicio de omniauth-idmty con Decidim, bastan los siguientes 5 pasos:

1. Instalar la gema
2. Agregar un inicializador en config/initializers utilizando Omniauth::Builder
3. Activar juanita como proveedor en secrets.yml
3. Activar idmty como proveedor en secrets.yml
4. Proporcionar las credenciales en el panel de sistema de decidim, y agregar el logotipo
5. Compilar los assets

Expand All @@ -13,26 +13,26 @@ Para integrar el servicio de omniauth-juanita con Decidim, bastan los siguientes
En el gemfile, basta con agregar:

```
gem "omniauth-juanita", path: "/path-de-la-gema/omniauth-juanita"
gem "omniauth-idmty", path: "/path-de-la-gema/omniauth-idmty"
```

Después: `bundle install`

## Agregar un inicializador

En agrega un archivo: `config/initializers/juanita.rb` con la siguiente información:
En agrega un archivo: `config/initializers/idmty.rb` con la siguiente información:

```ruby
if Rails.application.secrets.dig(:omniauth, :juanita).present?
if Rails.application.secrets.dig(:omniauth, :idmty).present?
Rails.application.config.middleware.use OmniAuth::Builder do
provider(
:juanita,
:idmty,
setup: ->(env) {

request = Rack::Request.new(env)
organization = Decidim::Organization.find_by(host: request.host)

provider_config = organization.enabled_omniauth_providers[:juanita]
provider_config = organization.enabled_omniauth_providers[:idmty]
env["omniauth.strategy"].options[:client_options] = {
identifier: provider_config[:client_id],
secret: provider_config[:client_secret],
Expand All @@ -47,13 +47,13 @@ if Rails.application.secrets.dig(:omniauth, :juanita).present?
end
```

## Activa el proveedor juanita en secrets.yml
## Activa el proveedor idmty en secrets.yml

En el entorno correspondiente, agrega el siguiente código. Asegúrate de dejar en `nil` los valores como aparecen abajo. Cada valor, creará un campo editable en el panel de system, y le delegaremos la habilidad de insertar y cambiar los valores a ese panel, y a la base de datos en el siguiente paso.

```yaml
omniauth:
juanita:
idmty:
enabled: true
site_url: nil
client_id: nil
Expand All @@ -64,12 +64,12 @@ En el entorno correspondiente, agrega el siguiente código. Asegúrate de dejar

## Proporcionar las credenciales en el panel de sistema

En la aplicación, entra a `urldelaaplicacion.com/system` y entra con tus credenciales de administrador de sistema. Da click al botón de "Editar" de tu organización, y entra a "Mostrar configuración avanzada". En la pantalla verás que "Juanita" ya aparece como proveedor de OAuth2. Deberás poner los siguientes campos de configuración:
En la aplicación, entra a `urldelaaplicacion.com/system` y entra con tus credenciales de administrador de sistema. Da click al botón de "Editar" de tu organización, y entra a "Mostrar configuración avanzada". En la pantalla verás que "IDMty" ya aparece como proveedor de OAuth2. Deberás poner los siguientes campos de configuración:

- site_url: el sitio base del servicio de oauth. En nuestro caso: iam.monterrey.gob.mx
- client_id: proporcionado por el equipo de Monterrey SIGA
- client_secret: proporcionado por el equipo de Monterrey SIGA
- redirect_uri: el sitio al que ocurrirá la redirección. En el caso de decidim, es `http://urldelaaplicacion.com/users/auth/juanita/callback`. Asegúrate de registrarlo tal cual como aparece en el servidor de SIGA, incluyendo el protocolo http o https.
- redirect_uri: el sitio al que ocurrirá la redirección. En el caso de decidim, es `http://urldelaaplicacion.com/users/auth/idmty/callback`. Asegúrate de registrarlo tal cual como aparece en el servidor de SIGA, incluyendo el protocolo http o https.
- icon_path: Es el logotipo que aparece en los botoes de oauth. Sólo acepta SVG's y estos deberán estar guardados en el directorio `/app/packs/images`. Sin embargo, los archivos en este folder se compilan, por lo que el icon_path deberá guardarse como: `media/images/nombredelarchivo.svg`.

## Compilar los assets
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
18 changes: 9 additions & 9 deletions omniauth-juanita/README.md → omniauth-idmty/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# omniauth-juanita
# omniauth-idmty

Gema que permite hacer log-in a tu aplicación utilizando el servicio Juanita, de identificación digital de la ciudad de Monterrey, México.
Gema que permite hacer log-in a tu aplicación utilizando el servicio IDMty, de identificación digital de la ciudad de Monterrey, México.

## Instalación

En tu Gemfile:

```
gem 'omniauth-juanita'
gem 'omniauth-idmty'
```
Después corre `bundle install` en tu terminal.

## Configuración

Necesitarás un client_id y un client_secret para este servicio. Deberás escribir a la dirección de informática de [Monterrey SIGA](monterrey.gob.mx/siga) para obtener tu registro. Deberás proporcionar la url de tu servicio y la url de callback (por ejemplo: http://tuurl.com/users/auth/juanita/callback).
Necesitarás un client_id y un client_secret para este servicio. Deberás escribir a la dirección de informática de [Monterrey SIGA](monterrey.gob.mx/siga) para obtener tu registro. Deberás proporcionar la url de tu servicio y la url de callback (por ejemplo: http://tuurl.com/users/auth/idmty/callback).

Se requieren las siguientes variables:

Expand All @@ -26,18 +26,18 @@ Se requieren las siguientes variables:
Para activarlo, recomiendo utilizar OmniAuth::Builder en un initializer, por ejemplo:

```ruby
# config/initializers/juanita.rb
if Rails.application.secrets.dig(:omniauth, :juanita).present?
# config/initializers/idmty.rb
if Rails.application.secrets.dig(:omniauth, :idmty).present?
Rails.application.config.middleware.use OmniAuth::Builder do
provider(
:juanita,
:idmty,
setup: ->(env) {

request = Rack::Request.new(env)
organization = Decidim::Organization.find_by(host: request.host)

provider_config = organization.enabled_omniauth_providers[:juanita]
secrets_config = Rails.application.secrets[:omniauth][:juanita]
provider_config = organization.enabled_omniauth_providers[:idmty]
secrets_config = Rails.application.secrets[:omniauth][:idmty]
env["omniauth.strategy"].options[:client_options] = {
identifier: provider_config[:client_id],
secret: provider_config[:client_secret],
Expand Down
3 changes: 3 additions & 0 deletions omniauth-idmty/lib/omniauth-idmty.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
require "omniauth/omniauth-idmty/version"
require "omniauth/omniauth-idmty/error"
require "omniauth/strategies/idmty"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module OmniAuth
module Juanita
module IDMty
class Error < RuntimeError; end

class MissingCodeError < Error; end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module OmniAuth
module Juanita
module IDMty
VERSION = "0.0.1"
end
end
Loading
Loading