Colin Darie
34788bc800
fix(schema): add missing index administrateurs#groupe_gestionnaire_id
2023-11-20 11:22:28 +01:00
Colin Darie
bb4a2b84b9
fix(schema): add missing index exports#instructeur_id
2023-11-20 11:22:28 +01:00
Martin
e99f9b5c17
amelioration(data): ajoute un index sur users.last_signed_in_at
2023-11-17 11:33:14 +01:00
Martin
b08609af48
tech(users.inactive_close_to_expiration_notice_sent_at): ajoute une colonne pour suivre la date de notification avant suppression du compte usager inactif
2023-11-17 11:33:14 +01:00
simon lehericey
f6b10731d3
add json_body to attestation template
2023-11-15 10:35:16 +01:00
Colin Darie
06a8684bfd
chore(schema): dossiers#for_procedure_preview not nullable
2023-11-10 15:41:30 +01:00
Kara Diaby
f692a9e5e4
Migration : re_instructed_at à Dossier et ajoute le re_instructed_mails
2023-11-10 08:46:13 +00:00
Colin Darie
3ac1688fe4
chore(schema): add announces_seen_at to users
2023-11-08 18:23:14 +01:00
Colin Darie
ff8ed6016e
feat(announce): super admin can create announce
2023-11-08 18:22:11 +01:00
Colin Darie
0d626f1811
chore(schema): create release_notes
2023-11-08 18:20:00 +01:00
krichtof
a6ea607e7a
Merge pull request #9566 from adullact/feature-ouidou/admin_creation_delegation_gestionnaire_page_children_management
...
Feature ouidou/admin creation delegation gestionnaire page children management
2023-11-08 15:13:10 +00:00
Paul Chavard
d93c624164
feat(traitement): add browser information
2023-11-08 00:09:38 +01:00
seb-by-ouidou
528c51cb5e
feat: US4.3.9 children management
2023-10-26 10:46:18 +00:00
Christophe Robillard
2b061dc2aa
add departement_to_services migration
2023-10-25 18:41:03 +02:00
mfo
ebea269f79
Merge pull request #9420 from mfo/US/chorus-tile
...
amelioration(tuile.chorus): ETQ admin, je peux saisir le cadre budgetaire d'une demarche de subvention pour faciliter le rapprochement d'un export DS a un export Chorus
2023-10-24 12:57:26 +00:00
Martin
d8f50700fc
tech(model.procedure): ajoute une a la table procedures
la colonne chorus
(jsonb)
2023-10-19 07:14:27 +02:00
Paul Chavard
7a01889563
use maintenance tasks gem
2023-10-10 15:11:08 +02:00
Colin Darie
b11495a7a6
chore(schema): fixup failed migrations, ensure exports->instructeurs foreign key exists
2023-10-10 11:00:27 +02:00
simon lehericey
360de43b7f
fix linter
2023-10-10 10:06:19 +02:00
Martin
28c5a5b790
correctif(deploy): separe les migration d'ajout de colonne et de reference
2023-10-09 16:42:04 +02:00
Colin Darie
760005de35
chore(schema): add dossiers_count & instructeur_id to exports
2023-10-09 11:23:12 +02:00
seb-by-ouidou
44b4b5d0ab
feat: rename admins_group_manager to gestionnaire
2023-10-03 13:51:57 +02:00
seb-by-ouidou
e2f792b44b
FEAT: init admins group
2023-10-03 13:51:57 +02:00
Colin Darie
de7d60e18e
chore(schema): remove exports unicity constraint
...
Co-Authored-By: Lisa Durand <lisa.c.durand@gmail.com>
2023-09-28 15:23:28 +02:00
seb-by-ouidou
d29bbf6d4f
Merge branch 'main' into feature-ouidou/existing_procedure_hidden_as_template
2023-09-21 15:53:38 +02:00
seb-by-ouidou
0d2cd0fe5d
feat(procedure): hide as template
2023-09-19 11:21:27 +00:00
Christophe Robillard
46dec40543
add contact information model
2023-09-08 11:04:06 +02:00
Eric Leroy-Terquem
bbb3823212
db(routing): remove routing criteria name column
2023-08-02 18:25:37 +02:00
Paul Chavard
e9cb50d09c
feat(api): add last_authenticated_at timestamp to api requests
2023-08-02 13:22:18 +02:00
Eric Leroy-Terquem
cdbaf987c0
db(routing): remove migrated champ routage columns
2023-08-01 16:59:22 +02:00
Colin Darie
f2afe5008f
chore(schema): remove dossier_corrections#kind, replaced in 5998cf
2023-07-27 16:31:48 +02:00
Colin Darie
5998cfe31f
refactor(correction): rename kind => reason with default correction => incorrect
2023-07-21 16:45:47 +02:00
Paul Chavard
735c504c0f
fix(postgis): do not try to create postgis extension if it is already created or it is disabled
2023-07-18 18:01:29 +02:00
Paul Chavard
573954c45f
feat(postgis): enable postgis
2023-07-18 18:01:29 +02:00
Eric Leroy-Terquem
5f5714678c
feat(DossierAsignment): create model
2023-07-18 16:54:00 +02:00
simon lehericey
c130f80a7d
feat(user): add blocket_at and block_reason columns
2023-07-18 13:46:27 +02:00
Colin Darie
1c977c72bf
chore(schema): +dossier_corrections#kind
2023-07-11 10:01:48 +02:00
Colin Darie
c3480f550d
chore(schema): +dossiers#sva_svr_decision_on, sva_svr_decision_triggered_at
2023-07-11 10:01:46 +02:00
Colin Darie
bb4a6e22ce
chore(schema): +procedures#sva_svr
2023-07-11 10:01:45 +02:00
Paul Chavard
a43c3fd19d
feat(procedure): add lien_notice_error and lien_dpo_error
2023-07-06 10:27:43 +02:00
Martin
5f8fce7997
amelioration(dossier.indexes): lors de sa suppression, un dossier nullifie les autre parent_dossier_id ayant son id. ça fait que la suppression des dossiers [ds le cas des expires] est LENT [3s pr executer la requete de nullification en dev]
2023-06-26 15:51:26 +02:00
Lisa Durand
9338a73362
add possibility to override generated pj list by admin
2023-06-22 09:50:38 +02:00
Eric Leroy-Terquem
ce1429b850
migration : add forced_group_instructeur_to_dossier
2023-06-15 14:14:47 +02:00
Colin Darie
a03f8b2ea4
fix(schema): dossier_corrections foreign keys in separate migration
2023-06-05 12:42:06 +02:00
Colin Darie
ec37611807
fix(schema): drop drop_down_lists migration not reversible
2023-06-02 16:16:15 +02:00
Colin Darie
5ab44fc7a9
chore: rename dossier_resolution => dossier_correction
2023-06-02 16:16:14 +02:00
Colin Darie
2c79ca94f5
chore(schema): create dossier_corrections
2023-06-02 16:13:15 +02:00
Lisa Durand
a20ec44841
Merge pull request #9074 from demarches-simplifiees/add-more-info-on-procedure-description
...
[Refonte page accueil demarche] Détailler la description pour plus de clarté pour l'usager
2023-05-30 09:45:32 +00:00
Lisa Durand
7340206f81
rollback - add just one new field and use actual description field
2023-05-24 11:31:24 +02:00
Lisa Durand
4a51a9a351
add two more fields for procedure description what et and for_who
2023-05-22 15:36:48 +02:00
Christophe Robillard
34540d34e9
create default_zones_administrateurs
2023-05-16 09:40:53 +02:00
Christophe Robillard
a191f66508
add tchap hs to zone
2023-05-16 09:40:53 +02:00
Paul Chavard
025bd5beaf
feat(dossier): dossier can be forked for editing
2023-05-09 15:34:10 +02:00
Colin Darie
6616acb825
chore(super-admin): update devise-two-factor v5 with otp_secret encrypted attribute
2023-05-03 11:35:32 +02:00
Nicolas Cavigneaux
5ee60cbb0c
chore: update and default initializer for Rails 7
2023-05-03 11:35:29 +02:00
Eric Leroy-Terquem
cade677355
feat(db): add defaut_groupe_instructeur_id column to procedures
2023-04-13 10:36:42 +02:00
Martin
a859bd0fbf
chore(données): supprime la table drop_down_lists
qui est inutilisée
2023-03-31 16:36:06 +02:00
Eric Leroy-Terquem
3ef6adccd6
feat(db): add routing column to groupe_instructeurs
2023-03-30 10:51:20 +02:00
Kara Diaby
ba8d78bd97
migration
2023-03-27 13:38:22 +02:00
Lisa Durand
a4a99a72ec
first step to add question in experts avis
2023-03-16 11:32:05 +01:00
Paul Chavard
64f79bb6d8
feat(api_token): add allowed_procedure_ids to api tokens
2023-03-15 19:09:49 +01:00
Martin
b0376ec99c
correctif(data): ajoute la clé etrangère entre active_storage_attachements et active_storage_blobs uniquement si elle est manquante
2023-03-02 08:34:17 +01:00
Christophe Robillard
bd92291f8a
cache dossiers count
2023-02-21 10:06:07 +01:00
Martin
b0a757a89d
chore(db): supprime un index non utilisé
2023-02-20 11:47:14 +01:00
mfo
290ba94de7
Merge branch 'main' into ensure-pg-fk-between-attachments-and-blobs
2023-02-16 16:51:28 +01:00
Martin
514835af1c
correctif(db): force active_storage_attachments.blob fk on active_storage_blobs
2023-02-16 16:02:14 +01:00
Martin
0427c28103
correctif(db.active_storage_attachements): ajoute un fk non validable a priori pour eviter les problemes d'attachments sans blob
2023-02-16 14:18:40 +01:00
sebastiencarceles
8220ea58ef
review: make use of migration helper
2023-02-07 14:34:52 +01:00
sebastiencarceles
5417d3adea
add external id index to champs
2023-02-07 12:04:49 +01:00
Martin
2de9026c13
amelioration(dolist_api): forward le message_id afin de faciliter les investigations
2023-02-03 17:19:36 +01:00
Colin Darie
eb9cd90ee8
chore(schema): +procedure#estimated_duration_visible
2023-02-01 11:02:55 +01:00
Eric Leroy-Terquem
1b67f93c66
feat(avis): add reminded_at field to avis
2023-01-30 11:13:23 +01:00
Paul Chavard
dad393355b
chore(db): remove unused columns
2023-01-17 12:49:22 +01:00
Martin
2f43ffc940
data(safe_mailer): ajout d'un object permetant d'orienter les mails vers un unique fournisseur au cas ou l'autre soit down
2023-01-11 17:13:05 +01:00
simon lehericey
28ab19e4f7
remove default value as it can cause lock and does not add value
2023-01-11 11:18:21 +01:00
Eric Leroy-Terquem
60cd9a5d0e
add migrated champ routage to dossiers, procedures and procedure_revisions
2023-01-11 11:18:21 +01:00
François Vantomme
f0ff364ed6
fix(migration): backfill procedure nil duree_conservation_etendue_par_ds
2023-01-11 11:00:43 +01:00
Paul Chavard
af33d5d65c
refactor(repetition): use row_id instead of row
2023-01-10 19:31:41 +01:00
Colin Darie
07167cead9
chore(schema): create email_events
2023-01-10 16:07:35 +01:00
Paul Chavard
dfe65136be
refactor(repetition): add row_id to champs
2023-01-05 18:04:54 +01:00
Paul Chavard
378f3c5fb0
use join table instead of arrays
2023-01-05 16:20:18 +01:00
Paul Chavard
ec6045c370
chore(blobs): add virus_scan_result index
2023-01-04 12:12:11 +01:00
Paul Chavard
6e18090fb3
refactor(virus_scan_result): use column instead of metadata on blob
2023-01-04 12:12:11 +01:00
Paul Chavard
d469bca0ae
refactor(watermark): use column instead of metadata on blob
2023-01-04 12:07:08 +01:00
Sébastien Carceles
20136b7ac8
feat(demarche): create and prefill a dossier with POST request ( #8233 )
...
* add base controller for public api
* add dossiers controller with basic checks
* create the dossier
* ensure content-type is json
* prefill dossier with given values
* mark a dossier as prefilled
When a dossier is prefilled, it's allowed not to have a user.
Plus, we add a secure token to the dossier, which we will need later to set a
user after sign in / sign up.
* set user as owner of an orphan prefilled dossier
When a visitor comes from the dossier_url answered by the public api,
the dossier is orphan:
- when the user is already authenticated: they become the owner
- when the user is not authenticated: they can sign in / sign up / france_connect
and then they become the owner
So here is the procedure:
- allow to sign in / sign up / france connect when user is unauthenticated
- set dossier ownership when the dossier is orphan
- check dossier ownership when the dossier is not
- redirect to brouillon path when user is signed in and owner
* mark the dossier as prefilled when it's prefilled
(even with a GET request, because it will be useful later on, for
exmample in order to cleanup the unused prefilled dossiers)
* system spec: prefilling dossier with post request
2023-01-03 14:46:10 +01:00
sebastiencarceles
38894fc853
review: prefilled has no default value
2022-12-08 15:27:39 +01:00
sebastiencarceles
373e8aeadb
review: validate prefilled champs only
2022-12-08 15:27:39 +01:00
Paul Chavard
47f716f9fa
feat(api_token): add api_tokens table
2022-12-07 18:19:37 +01:00
Martin
e5944eed34
poc(batch_operation): habtm groupe instructeurs, permettra de visualiser plus facilement les batch en cours pour les instructeurs du meme groupe
2022-12-06 11:28:48 +01:00
Martin
61f4cded75
poc(batch_operation): just the model and some specs and a poc for archive them without async
2022-12-06 11:28:48 +01:00
Colin Darie
0014ce4b91
chore(schema): +procedures#piece_justificative_multiple
2022-12-05 10:47:10 +01:00
Paul Chavard
ece68076a7
feat(dossier): add some metadata to archive and remove operation log
2022-11-30 16:20:13 +01:00
simon lehericey
870d7280fb
fix(procedure): add not null constraint on duree_conservation
2022-11-23 18:04:49 +01:00
Paul Chavard
e4bf1bd2db
feat(dossier): add data to DossierOperationLog
2022-11-22 18:06:05 +01:00
Christophe Robillard
cee087a794
add libelle index on procedures
2022-11-22 17:08:17 +01:00
Martin
18b7f4e4fa
remaniement(dossier.clone): simplifications, pas de callback/after, pas d'heritage, mm interface pour cloner les champs public/prive, clonage des PJs avec le nouveau service de clone, ajoute une cle etrangere sur la colonne parent_dossier_id
2022-11-14 09:53:19 +01:00
Martin
844004818a
amelioration(dossier.clone): dossier.clone, permet de cloner un dossier
2022-11-14 09:13:52 +01:00
Martin
c9292e7ba8
amelioration(bdd): mise en place d'un flag pour identifier les anciens comptes d'admin de DS
2022-11-08 09:55:21 +01:00
simon lehericey
46852c7f81
fix(migration): ignore strong migration for small nb of procedure
2022-10-27 09:39:41 +02:00
Kara Diaby
492c7f377f
migration
2022-10-21 19:13:12 +02:00
Paul Chavard
fa18ebd63a
fix(message): add instructeurs foreign key
2022-10-20 14:42:42 +02:00
Martin
654d38626b
correctif(fusion de compte): recupération sur les comptes usagers ayant initié la fusion de leurs compte sur lui même [ce qui detruit la donnée]
2022-10-13 17:00:20 +02:00
Paul Chavard
bc5e46e6de
chore(db): add index on type to champs
2022-10-11 10:43:32 +02:00
Martin
c52b06a84f
fix(data): move type de champs engagement to checkbox
2022-10-07 18:30:56 +02:00
Christophe Robillard
6d90f65159
backfill procedures_zones
2022-10-07 10:48:34 +02:00
Christophe Robillard
bffd9d61a9
add habtm between procedures and zones
2022-10-07 10:48:34 +02:00
Martin
f2a6697ebe
fix(migration): backfill max_duree_conservation_dossiers_dans_ds without typo
2022-10-06 20:08:48 +02:00
simon lehericey
95430b2ee8
perf: add index on invite dossier_id
2022-10-06 17:17:27 +02:00
Martin
405a885160
feat(procedure.max_duree_conservation_dossiers_dans_ds): make it more flexible
2022-10-05 17:27:09 +02:00
Christophe Robillard
dc15b39648
add zone_label migration
2022-09-26 16:58:53 +02:00
Paul Chavard
16bba911ba
Revert "Merge pull request #7637 from tchak/chore-add-missing-foreign-keys"
...
This reverts commit b21ee46dc2
, reversing
changes made to dd85b5c35c
.
2022-09-21 15:20:42 +02:00
Paul Chavard
2485fb67cc
fix(db): add missing foreign key on attachements blob_id
2022-09-20 15:18:19 +02:00
Paul Chavard
84b9644bcd
fix(db): add missing foreign keys
2022-09-20 15:16:52 +02:00
Colin Darie
81149cc809
chore(schema): safer migration for add_etablissment_infos_to_services
2022-09-06 09:23:52 +02:00
Colin Darie
7d39cc6b3e
chore(schema): +services#etablissement_{infos,geopoint}
...
- `etablissement_infos` est une représentation partielle en jsonb
de ce qui est renvoyé par l'API Entreprise.
(On ne conserve que l'adresse pour le moment, utilisée pour le geocodage)
- `etablissement_geopoint` est le point (x,y) issu du géocodage de
l'établissement
2022-09-06 09:23:52 +02:00
Colin Darie
a4d9a45280
chore(schema): +services#siret
2022-09-06 09:23:52 +02:00
simon lehericey
8c884b4869
fix(migration): fix avis email notification migration
2022-09-02 17:23:04 +02:00
Kara Diaby
aab0c445de
Add instant avis email notification to assign_tos
2022-09-02 16:17:22 +02:00
Martin
5b551682cb
feat(super-admin): re-add to procedure without any instructeur
2022-08-24 14:37:27 +02:00
Martin
e23525ff4a
feat(clean.super_admin.assign_tos): remove former assign to so our support team is happy :-)
2022-08-23 14:39:40 +02:00
Martin
c2e0994e11
feat(Administrateur::ArchivesController#*): prevent SuperAdmin to index/download archives
2022-08-23 13:28:10 +02:00
Martin
f0a4cbb61e
feat(assign_tos): add manager column to assign_tos table. Same idea as administrateur_procedures.manager which flag a link between procedure/administrateur coming from a SuperAdmin [target: able to avoid SuperAdmin sec issues]
2022-08-23 13:28:10 +02:00
Paul Chavard
e764aade13
fix(db): types_de_champ migration is too long
2022-08-03 14:22:34 +02:00
Paul Chavard
10ef4a4be5
chore(db): remove ignored columns
2022-08-02 15:24:52 +02:00
Colin Darie
67d2cb2061
chore(schema): add exports#job_status
...
Same behavior as Archive
On destroy tous les exports existants qui n'ont pas cette notion de status.
2022-07-26 17:53:24 +02:00
Colin Darie
e1d3d1f844
chore(schema): add entreprise_etat_administratif to etablissements
2022-07-25 10:58:02 +02:00
Martin
3e56fdd1d7
fix(export): when it takes more than 3 hours, exports are purge before being generated. make it possible to have an export that takes more than 3 hours and share this behaviour with kind of same class archive
2022-07-25 10:48:54 +02:00
Martin
24c8dc5829
feat(procedure.duree_conservation_dossiers_dans_ds): decrease max duree_conservation_dossiers_dans_ds from 36 to 12
2022-07-18 14:08:53 +02:00
Christophe Robillard
ea59f5f260
add opendata boolean attribute for procedure
...
when opendata is set to true, it means that descriptive's procedure can be
public
when opendata is set to false, ti means that descriptive's can not be
public, because the procedure is only available for public servants, not
citizens.
2022-06-23 14:11:09 +02:00
Martin
a1623a1213
fix(data): ensure to populate closed column in after_party migration
2022-06-21 18:46:13 +02:00
Martin
4275096349
fix(AddColumnClosedToGroupeInstructeurs): add column with change_column_default
2022-06-21 16:15:28 +02:00
Martin
ab4d4c83a8
feat(GroupeInstructeurs.closed): add closed option to GroupeInstructeur in order to prevent usagers to submit dossier
2022-06-20 16:32:06 +02:00
Martin
274b5eab2e
feat(invite): wrap invitation with targeted_user_links
2022-06-17 16:44:37 +02:00
simon lehericey
758933f6f9
tdc can have condition
2022-06-17 14:53:28 +02:00
Martin
cb890343ff
feat(targeted_user_link): add targeted user link to wrap expert invitation in order to avoid access issue when the expert is connected with another account
...
feat(user.merge): ensure to merge user.targeted_user_link
Update app/models/targeted_user_link.rb
Co-authored-by: LeSim <mail@simon.lehericey.net>
Update app/models/targeted_user_link.rb
Co-authored-by: LeSim <mail@simon.lehericey.net>
Update app/models/targeted_user_link.rb
Co-authored-by: LeSim <mail@simon.lehericey.net>
feat(db/create_targeted_user_links): ensure not null with fk
2022-05-31 14:50:31 +02:00
Kara Diaby
0381444770
migration
2022-05-26 12:45:05 +02:00
Martin
3737311390
feat(procedure.procedure_expires_when_termine_enabled): enable by default, allow contributor to choose the default settings of this flag using an env var during migration. ie: DEFAULT_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED=true|false
...
feat(administrateurs/procedures#show): warning/alert when procedure_expires_when_termine_enabled is not true on current procedure
feat(administrateur/procedure#update): after an update redirect to procedure show: suggested by: https://ux.stackexchange.com/questions/55291/after-updating-form-should-redirect-back-to-form-itself-or-to-the-show-page-or-b and confirmed by Olivier
clean(Flipper.archive_zip_globale): no more in use, so remove all occurences
Update app/views/administrateurs/procedures/_suggest_expires_when_termine.html.haml
Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
Update app/views/administrateurs/procedures/_suggest_expires_when_termine.html.haml
Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
Update app/views/administrateurs/procedures/_suggest_expires_when_termine.html.haml
Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
Update spec/views/administrateurs/procedures/show.html.haml_spec.rb
Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
fix(review): typo, why ena?, who knows
fix(env.example.optional): add missing DEFAULT_PROCEDURE_EXPIRES_WHEN_TERMINE_ENABLED
2022-05-05 13:07:11 +02:00
Martin
636f887698
fix(user.merge): when merging old_user having an instructeur with dossier_operation_logs containing the old_user.instructeur_id, should be able to merge to new instructeur
...
feat(user.merge): when user have an instructeur having dossier_opertions_logs containing instructeur_id
2022-05-04 14:24:11 +02:00
Paul Chavard
27f9a820cc
feat(dossier): add preview flag
2022-04-28 11:52:38 +02:00
Martin
be090a1bec
feat(administrateur/procedure#create): allow admin to add a lien to the DPO, allow user to consult link to dpo. enhance spec on _procedure_footer.html
...
Update spec/views/users/_procedure_footer.html.haml_spec.rb
Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
2022-04-27 15:09:02 +02:00
Remi-Frk
17bf19e3f0
fix(migrate): lien administrateurs_procedures - administrateurs
2022-04-25 14:20:57 +02:00
simon lehericey
53de567b59
revert fix(user.merge) : waiting for ignore column instructeur_id in ruby code
2022-04-12 14:02:20 +02:00
Martin
e83f5fe475
fix(user.merge): when merging old_user having an instructeur with dossier_operation_logs containing the old_user.instructeur_id, should be able to merge to new instructeur
...
feat(user.merge): when user have an instructeur having dossier_opertions_logs containing instructeur_id
2022-04-12 11:28:33 +02:00
Martin
f84c7ac5e4
fix(migration): apply what strong migration recommends
2022-04-07 10:25:05 +02:00
Paul Chavard
21945b6df0
fix(exports): disable strong migration checks because we are operating on a “small” table
2022-04-07 09:44:09 +02:00
Paul Chavard
9904dabffe
feat(procedure_presentation): pass filters as serialized snapshot
2022-04-06 17:08:38 +02:00
Paul Chavard
be1a2f916d
feat(exports): add statut and procedure_presentation to exports
2022-04-06 17:08:38 +02:00
simon lehericey
200e8680d5
add uniq index on attestation dossier_id
2022-04-05 15:43:21 +02:00
Pierre de La Morinerie
79ea80c199
db: remove deprecated role columns on user
2022-03-29 14:52:38 +02:00
Pierre de La Morinerie
017625207e
db: add constraints to role tables
2022-03-29 14:52:38 +02:00