1. 11 Mar, 2016 1 commit
  2. 10 Mar, 2016 1 commit
  3. 29 Feb, 2016 3 commits
  4. 24 Feb, 2016 1 commit
  5. 20 Feb, 2016 2 commits
  6. 18 Feb, 2016 1 commit
  7. 17 Feb, 2016 1 commit
  8. 09 Feb, 2016 3 commits
  9. 02 Feb, 2016 2 commits
  10. 22 Jan, 2016 1 commit
  11. 20 Jan, 2016 1 commit
  12. 19 Jan, 2016 1 commit
  13. 14 Jan, 2016 1 commit
  14. 08 Jan, 2016 2 commits
  15. 06 Jan, 2016 1 commit
  16. 03 Jan, 2016 1 commit
  17. 15 Dec, 2015 1 commit
  18. 14 Dec, 2015 1 commit
  19. 11 Dec, 2015 3 commits
  20. 09 Dec, 2015 1 commit
  21. 07 Dec, 2015 1 commit
  22. 03 Dec, 2015 1 commit
  23. 02 Dec, 2015 1 commit
  24. 18 Nov, 2015 8 commits
    • Yorick Peterse's avatar
      Use "GitLab.com" instead of "gitlab.com" · efd5d937
      Yorick Peterse authored
      efd5d937
    • Yorick Peterse's avatar
      Don't pluck project IDs in User#owned_projects · 26482bdd
      Yorick Peterse authored
      This won't work efficiently if you happen to have a lot of projects.
      26482bdd
    • Yorick Peterse's avatar
      Apply CI scope changes to the User model · 73f302ed
      Yorick Peterse authored
      These changes are based on those from commit
      03f5ff75, except they use a UNION
      instead of plucking IDs into memory.
      73f302ed
    • Yorick Peterse's avatar
      Refactor User#authorized_groups/projects · e116a356
      Yorick Peterse authored
      These methods no longer include public groups/projects (that don't
      belong to the actual user) as this is handled by the various finder
      classes now. This also removes the need for passing extra arguments.
      
      Note that memoizing was removed _explicitly_. For whatever reason doing
      so messes up the users controller to a point where it claims a certain
      user does _not_ have access to certain groups/projects when it does have
      access. Existing code shouldn't be affected as these methods are only
      called in ways that they'd run queries anyway (e.g. a combination of
      "any?" and "each" which would run 2 queries regardless of memoizing).
      e116a356
    • Yorick Peterse's avatar
      Refactor getting user groups/projects/contributions · 5fcd9986
      Yorick Peterse authored
      This new setup no longer loads any IDs into memory using "pluck",
      instead using SQL UNIONs to merge the various datasets together. This
      results in greatly improved query performance as well as a reduction of
      memory usage.
      
      The old setup was in particular problematic when requesting the
      authorized projects _including_ public/internal projects as this would
      result in roughly 65000 project IDs being loaded into memory. These IDs
      would in turn be passed to other queries.
      5fcd9986
    • Yorick Peterse's avatar
      Prefix table names for User UNIONs · bfd9855a
      Yorick Peterse authored
      bfd9855a
    • Yorick Peterse's avatar
      Use SQL::Union for User#authorized_groups · 189c40c3
      Yorick Peterse authored
      This removes the need for plucking any IDs into Ruby.
      189c40c3
    • Yorick Peterse's avatar
      Use SQL::Union for User#authorized_projects · 028bd227
      Yorick Peterse authored
      This allows retrieving of the list of authorized projects using a single
      query, without having to load any IDs into Ruby. This in turn also means
      we can remove the method User#authorized_projects_id.
      028bd227