Skip to content

Commit

Permalink
Merge pull request #142 from CodeandoMexico/feature/juanita
Browse files Browse the repository at this point in the history
renamed omniauth-juanita to omniauth-idmty and modified addresses
  • Loading branch information
basicavisual committed Aug 4, 2023
2 parents 229c6b4 + 34017e6 commit a256511
Show file tree
Hide file tree
Showing 24 changed files with 129 additions and 617 deletions.
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/gp-docker-action@1.2.0
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
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

0 comments on commit a256511

Please sign in to comment.