Skip to content
Snippets Groups Projects
  1. Apr 21, 2023
  2. Dec 15, 2022
    • Andrej Shadura's avatar
      Unverified
      6c68f757
    • Andrej Shadura's avatar
      Periodically block users removed from the required groups · c03e97b8
      Andrej Shadura authored
      
      This implementation assumes users are not allowed to change their
      usernames.
      
      MS Graph API provides a few different elements to identify users:
      
       - the oid, which is guaranteed to uniquely map to a single user
         in a tenant, and globally if combined with the tid (tenant id)
       - the userPrincipalName, in the form <username@tenant.domain>
       - the free-form email address
      
      Ideally, all services should use the oid+tid as an internal user
      identifier, the userPrincipalName as a username, and the free-form
      email for notifications.
      
      When federation of tenants is out of scope, the oid and the
      username part of the userPrincipalName would be enough.
      
      Due to various reasons, the services the mediator is used
      with on our setup use those elements differently:
      
      * OBS uses <username> for user IDs, but *usually* the free-form email
        for emails.
      * GitLab uses integers for user IDs, the free-form email for primary
        emails, <username> as the username and the full userPrincipalName for the
        openid_connect authentication method (which, arguably, should be changed to
        use the oid+tid), but has no easy way to retrieve users by such identifier
        (however, it is exposed in some of the user listing API when using
        administrator’s rights)
      * LAVA currently uses the free-form email and should be fixed to use the
        username from the userPrincipalName
      
      Since in our setup the userPrincipalName cannot be changed and
      cannot be re-used, and federation is not in scope, using the
      username part of the userPrincipalName is enough to reliably identify
      users across services, and it is also what users expect.
      
      Signed-off-by: default avatarAndrej Shadura <andrew.shadura@collabora.co.uk>
      Unverified
      c03e97b8
    • Andrej Shadura's avatar
      Bump go-gitlab · 3353227e
      Andrej Shadura authored
      
      The new version exposes more object fields of the GitLab API. In
      particular, we need bot: true to be able to filter out bot users.
      
      Signed-off-by: default avatarAndrej Shadura <andrew.shadura@collabora.co.uk>
      Unverified
      3353227e
  3. Nov 22, 2022
  4. Nov 09, 2022
    • Edmund Smith's avatar
      Implement the LAVA backend · 19bc1296
      Edmund Smith authored and Andrej Shadura's avatar Andrej Shadura committed
      This is considerably simpler than it might be, because LAVA exports
      the API we want - set all the groups to which a user belongs.
      
      The main complication here is that LAVA uses basic authentication,
      which means we need an XMLRPC library which supports setting this
      header. The majority of go XMLRPC libraries I looked at did not seem
      to support this.
      Unverified
      19bc1296
  5. Jun 08, 2022
  6. May 16, 2022
  7. Oct 05, 2021
  8. Aug 04, 2021
  9. Jul 02, 2021
Loading