Skip to content

Refactor password management for externally managed users#594

Merged
nygrenh merged 2 commits into
masterfrom
password-migration-bugfixes
Jun 16, 2026
Merged

Refactor password management for externally managed users#594
nygrenh merged 2 commits into
masterfrom
password-migration-bugfixes

Conversation

@nygrenh

@nygrenh nygrenh commented Jun 11, 2026

Copy link
Copy Markdown
Member

No description provided.

- Update password reset logic to handle users managed by courses.mooc.fi and those without a delegation ID.
- Enhance error handling and logging for authentication failures related to external management.
- Normalize password input to ensure consistent authentication across different Unicode forms.
- Add validations for courses.mooc.fi user ID to prevent misconfigurations.

@houndci-bot houndci-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some files could not be reviewed due to errors:

Unable to find gem rubocop-rails_config; is the gem installed? Gem::MissingSp...
Unable to find gem rubocop-rails_config; is the gem installed? Gem::MissingSpecError
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:237:in `rescue in gem_config_path'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:227:in `gem_config_path'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:55:in `block (2 levels) in resolve_inheritance_from_gems'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:53:in `reverse_each'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:53:in `block in resolve_inheritance_from_gems'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:46:in `each_pair'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:46:in `resolve_inheritance_from_gems'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader.rb:49:in `load_file'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader.rb:104:in `configuration_from_file'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_store.rb:58:in `for_dir'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_store.rb:37:in `for_pwd'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/cli.rb:128:in `apply_default_formatter'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/cli.rb:40:in `run'
/home/linters/.bundle/gems/rubocop-1.5.2/exe/rubocop:13:in `block in '
/usr/local/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
/home/linters/.bundle/gems/rubocop-1.5.2/exe/rubocop:12:in `'
/home/linters/.bundle/bin/rubocop:23:in `load'
/home/linters/.bundle/bin/rubocop:23:in `'
/usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'
/usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'
/usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/usr/local/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/usr/local/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in '
/usr/local/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `'

HTTP Basic Auth credentials are Base64-decoded into ASCII-8BIT strings,
and unicode_normalize raises Encoding::CompatibilityError on any
ASCII-8BIT string regardless of its contents. Reinterpret the bytes as
UTF-8 before normalizing, and leave the password untouched when the
bytes are not valid UTF-8.

@houndci-bot houndci-bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some files could not be reviewed due to errors:

Unable to find gem rubocop-rails_config; is the gem installed? Gem::MissingSp...
Unable to find gem rubocop-rails_config; is the gem installed? Gem::MissingSpecError
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:237:in `rescue in gem_config_path'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:227:in `gem_config_path'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:55:in `block (2 levels) in resolve_inheritance_from_gems'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:53:in `reverse_each'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:53:in `block in resolve_inheritance_from_gems'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:46:in `each_pair'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader_resolver.rb:46:in `resolve_inheritance_from_gems'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader.rb:49:in `load_file'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_loader.rb:104:in `configuration_from_file'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_store.rb:58:in `for_dir'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/config_store.rb:37:in `for_pwd'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/cli.rb:128:in `apply_default_formatter'
/home/linters/.bundle/gems/rubocop-1.5.2/lib/rubocop/cli.rb:40:in `run'
/home/linters/.bundle/gems/rubocop-1.5.2/exe/rubocop:13:in `block in '
/usr/local/lib/ruby/2.6.0/benchmark.rb:308:in `realtime'
/home/linters/.bundle/gems/rubocop-1.5.2/exe/rubocop:12:in `'
/home/linters/.bundle/bin/rubocop:23:in `load'
/home/linters/.bundle/bin/rubocop:23:in `'
/usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `load'
/usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:74:in `kernel_load'
/usr/local/lib/ruby/2.6.0/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/2.6.0/bundler/cli.rb:463:in `exec'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/usr/local/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'
/usr/local/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/usr/local/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in '
/usr/local/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `'

@nygrenh nygrenh merged commit 5a37854 into master Jun 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants