How to find User's authorizations in Decidim

Playing with the authorizations table

How to list the current authorizations in the authorizations table

irb(main)> Decidim::Authorization.select("distinct name")
=> #<ActiveRecord::Relation [#<Decidim::Authorization id: nil, name: "sms">, #<Decidim::Authorization id: nil, name: "census_authorization_handler">]>
 

Inspecting the metadata of Decidim Authorizations

Authorizations may have extra data stored in the metadata column. The following query shows the metadata associated with a given authorization:

irb(main):018:0> Decidim::Authorization.where(name: "census_authorization_handler").last.metadata
=> {"scope"=>"Sants-Montjuïc", "gender"=>"man", "postal_code"=>"010203", "date_of_birth"=>"2000-11-12"}
 

Querying Decidim Authorizations by their metadata

The metadata column of the Decidim::Authorization table is a jsonb field. PostgreSQL jsonb fields can be queried using  PostgreSQL's syntax in the following ways:

Decidim::Authorization.where(name: "census_authorization_handler").where("metadata ->> 'date_of_birth' like '16-12-2000'").last.metadata

Decidim::Authorization.where(name: "census_authorization_handler").where("metadata->>'scope' = 'Eixample'").where("metadata->>'postal_code' = '010203'")
 

User's sensible information must be stored securely using encryptation.

Imagine there's the need to remove all authorizations related with a given participant. If the participant is identified by its "document_number" as the unique_id for her authorizations, then the query must use the encrypted version of the "document_number". This is an example:

document_number= "12345678A"
unique_id= Digest::MD5.hexdigest("#{document_number&.upcase}-#{Rails.application.secrets.secret_key_base}")
Decidim::Authorization.where(name: "census_authorization_handler").where(unique_id: unique_id)

 

Coditramuntana SL ha estat beneficiaria del Fons Europeu de Desenvolupament Regional l’objectiu del qual és el desenvolupament tecnològic, la innovació i una recerca de qualitat y gràcies al que ha pogut desenvolupar i implementar un pla de màrqueting empresarial. Aquesta acció ha tingut lloc durant el 2018 y 2019.

Per fer-ho possible ha comptat amb el recolzament del Programa InnoCámaras de la Cambra de Comerç de Girona. Fons Europeu de Desenvolupament Regional. Una manera de fer Europa.

Utilitzem cookies pròpies i de tercers per al correcte funcionament i visualització del lloc web per part de l'usuari, així com per a la recollida d'estadístiques del seu ús. En continuar navegant accepta el seu ús. Política de cookies Modificar la configuració