Skip to content
GitLab
项目 群组 主题 代码片段
  • /
  • 帮助
    • 帮助
    • 支持
    • 社区论坛
    • 提交反馈
  • 登录
  • L large
  • 项目信息
    • 项目信息
    • 动态
    • 标记
    • 成员
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者统计
    • 分支图
    • 比较修订版本
  • 议题 21
    • 议题 21
    • 列表
    • 看板
    • 服务台
    • 里程碑
  • 合并请求 12
    • 合并请求 12
  • CI/CD
    • CI/CD
    • 流水线
    • 作业
    • 产物
    • 计划
  • 部署
    • 部署
    • 环境
    • 发布
  • 软件包与镜像库
    • 软件包与镜像库
    • 软件包库
    • 容器镜像库
    • Terraform 模块
    • 模型实验
  • 监控
    • 监控
    • 事件
  • 分析
    • 分析
    • 价值流
    • CI/CD
    • 仓库
  • Wiki
    • Wiki
  • 代码片段
    • 代码片段
  • 动态
  • 分支图
  • 创建新议题
  • 作业
  • 提交
  • 议题看板
收起侧边栏
  • 王权利
  • large
  • 议题
  • #3022

LDAP -> User Field Procs

Created by: brocktimus

I think it would be really useful if we could configure procs for other fields for how the output of LDAP maps onto the User model.

At the moment we can map the username typed in into the internal uid field like so:

production:
  ldap:
    name_proc: Proc.new {|name| name.gsub(/@.*$/,'')} # Extract uid from email

It would be great if we could do the following which would allow for varied LDAP schemas without having to branch / monkey patch:

production:
  ldap:
    username_proc: Proc.new { |uid, email| email.match(/([\w\.]*)@/)[1] } # Extract username from front of email
    email_proc: Proc.new { |uid, email| email.match(/[\w\.]*@[\w\.]*/)[0] } # Extract email from formatted field

Then something like the default proc which is currently used to convert emails into usernames could be defined as a default option for the username_proc.

The difference being these are applied to the output of the LDAP moreso than the input. I'd be willing to help make this happen since it means we don't have to maintain a local branch, just need some advice as to where these procs should go.

The main places I'm looking at are

  • lib/gitlab/auth.rb as private methods
  • somewhere in gitlab_omniauth-ldap

What're your thoughts?

指派人
分配到
工时统计