Skip to content

Conversation

Ellen-Wittingen
Copy link
Contributor

@Ellen-Wittingen Ellen-Wittingen commented May 8, 2024

Fixes #923.

Streepsysteem account aanmaken

Bij gebruikers kan iemand met de rol treasurer streepsysteem gebruikers inzien en aanmaken:
image
Nieuwe gebruiker aanmaken scherm (precies hetzelfde scherm als voor aanmaken van handmatige gebruikers):
image

Wanneer de treasurer een streepsysteem gebruiker aanmaakt, wordt het ingevulde emailadres gemaild met de volgende mail:
image

Als de persoon dan op de activatielink klikt (/sofia_accounts/activate_account?activation_token=activation_token&user_id=user_id), ziet hij dit (zonder de icoontjes van mijn KeypassXC):
image

Als hij dat invult en drukt op activeren dan wordt een SofiaAccount object aangemaakt, waar de username, password_digest en aanmaak-datum worden opgeslagen. Hij wordt dan ook meteen aan de user gelinkt waar die bij hoort. Als de user wordt verwijderd, wordt ook de SofiaAccount verwijdert.

Na activatie ziet de persoon dit:
image

Instellingen van login

Met de instellingen knop kan de persoon zijn user- en inlog-instellingen wijzingen, zoals de gebruikersnaam, email, wachtwoord, en 2FA instellen (zelfde 2FA menu als op AMBER)
image

Login pagina

Op de login pagina kan je nu kiezen om in te loggen met een streepsysteem account:
image

Dan krijg je deze inlog pagina:
image

Als je 2FA hebt aangezet, krijg je daarna nog een pagina waar je de token moet invullen.

Wachtwoord vergeten

Als je drukt op "wachtwoord vergeten?" krijg je de volgende pagina:
image

Als je je gegevens invult krijg je een email op het emailadres gelinkt aan de user:
image

Als je op de link klikt kom je op het volgende scherm, waar je een nieuw wachtwoord instellen:
image

Als je dat niet binnen 1 dag doet, verloopt de activatiecode. Na het verlopen, moet ze zelf weer op "wachtwoord vergeten?" klikken op de inlog pagina

Resetten van activatie token

Voor het activeren van een nieuw account heeft een user 5 dagen, daarna is de link verlopen. Maar in de activatiemail staat een 2e link, en als je daar op klikt dan wordt er een nieuwe activatielink gemaakt die vanaf dan 1 dag geldig is, en die wordt naar hetzelfde emailadres gemailt:
image

Deactiveren user

Wanneer een treasurer een user deactiveerd kan die user niet meer inloggen met zijn gelinkte streepsysteem account. Het streepsysteem account blijft wel bestaan, want als de user weer wordt geactiveerd dan moet die wel weer kunnen inloggen.

Technische details

  • Nieuw model SofiaAccount waar logingegevens in worden opgeslagen. Deze is altijd gelinkt aan een User en wordt verwijdert wanneer de user wordt verwijdert.
  • In callback_controller staat de logica van het inloggen met een streepsysteem account.
  • OmniAuth module omniauth-identity gebruikt om dit zo te maken.
  • Afgetest met RSpec tests.

@Ellen-Wittingen Ellen-Wittingen self-assigned this May 8, 2024
Copy link

codecov bot commented Dec 31, 2024

Codecov Report

❌ Patch coverage is 85.92593% with 38 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.59%. Comparing base (414558c) to head (5dc3824).
⚠️ Report is 48 commits behind head on staging.

Files with missing lines Patch % Lines
app/mailers/user_mailer.rb 18.18% 18 Missing ⚠️
app/controllers/sofia_accounts_controller.rb 90.90% 12 Missing ⚠️
app/controllers/callbacks_controller.rb 82.75% 5 Missing ⚠️
app/controllers/users_controller.rb 88.88% 3 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           staging     #925      +/-   ##
===========================================
+ Coverage    75.17%   77.59%   +2.41%     
===========================================
  Files           55       59       +4     
  Lines         1116     1370     +254     
===========================================
+ Hits           839     1063     +224     
- Misses         277      307      +30     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Ellen-Wittingen
Copy link
Contributor Author

Ellen-Wittingen commented Dec 31, 2024

Kan de emails voor account activatie en wachtwoord resetten die daadwerkelijk worden verstuurd niet inzien, want sidekiq weigert lokaal te draaien door een deprecation, zie hieronder. Kan wel de globale preview zien met de url /rails/mailers/user_mailer

2024-12-31T11:26:18.130Z pid=775 tid=5cn WARN: DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set
`legacy_connection_handling` to `false` in your application.

The new connection handling does not support `connection_handlers`
getter and setter.

Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling

@lodewiges
Copy link
Contributor

lodewiges commented Jan 1, 2025

Kan de emails voor account activatie en wachtwoord resetten die daadwerkelijk worden verstuurd niet inzien, want sidekiq weigert lokaal te draaien door een deprecation, zie hieronder. Kan wel de globale preview zien met de url /rails/mailers/user_mailer

2024-12-31T11:26:18.130Z pid=775 tid=5cn WARN: DEPRECATION WARNING: Using legacy connection handling is deprecated. Please set
`legacy_connection_handling` to `false` in your application.

The new connection handling does not support `connection_handlers`
getter and setter.

Read more about how to migrate at: https://guides.rubyonrails.org/active_record_multiple_databases.html#migrate-to-the-new-connection-handling

A I see, there are a couple more deprecation issues I will have a look if i can fix a couple in a PR. Are you going to look into fixing this issue or should I look into it,

Update, I have gotten the error go away using config.load_defaults 7.0 in aplication.rb
i am not sure what all the effects are of this change but sofia still runs normaly

@Ellen-Wittingen
Copy link
Contributor Author

TODO: merge conflicts met staging oplossen en RuboCop linting errors oplossen

@Ellen-Wittingen Ellen-Wittingen marked this pull request as ready for review January 4, 2025 16:58
@lodewiges
Copy link
Contributor

How is this coming along?

@Ellen-Wittingen
Copy link
Contributor Author

Apologies for the delay, I got busy again and kept putting it off. It is completely done now :)

@lodewiges lodewiges self-requested a review February 24, 2025 10:12
@lodewiges lodewiges added the critical Dit moet gefixt vóór de volgende borrel label Aug 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

critical Dit moet gefixt vóór de volgende borrel status:ready to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Self-contained login option

2 participants