Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • G gitlabhq1
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • gpt
  • large_projects
  • gitlabhq1
  • Merge requests
  • !8823

Closed
Created Feb 19, 2015 by Administrator@rootOwner
  • Report abuse
Report abuse

Improvement to identity builder in LDAP::User

  • Overview 2
  • Commits 1
  • Changes 1

Created by: jamgregory

Currently, the find_or_initialize_by statement in the LDAP::User model will cause duplicate identities to be created when a new user logs in. This is because find_or_initialize_by can't check in-memory records, and a new identity is created by build_new_user in the OAuth::User model. By adding a persisted? check, find_or_initialize_by is ignored on the first run, and so duplicate identities aren't created.

This has only been a problem on our local installation of Gitlab because we block new LDAP accounts from logging in if they don't already exist (needs_blocking? is true if it's a new user). The duplicate identities wouldn't cause the user.save! statement to fail, but the user.block statement following it would fail.

Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: github/fork/jamgregory/patch-1