Read about our upcoming Code of Conduct on this issue

  1. 21 Dec, 2016 1 commit
    • Markus Koller's avatar
      Add more storage statistics · 4571941f6307
      Markus Koller authored
      This adds counters for build artifacts and LFS objects, and moves
      the preexisting repository_size and commit_count from the projects
      table into a new project_statistics table.
      
      The counters are displayed in the administration area for projects
      and groups, and also available through the API for admins (on */all)
      and normal users (on */owned)
      
      The statistics are updated through ProjectCacheWorker, which can now
      do more granular updates with the new :statistics argument.
      4571941f6307
  2. 13 Dec, 2016 1 commit
  3. 23 Nov, 2016 2 commits
  4. 18 Nov, 2016 1 commit
  5. 27 Oct, 2016 1 commit
  6. 24 Oct, 2016 2 commits
  7. 21 Oct, 2016 1 commit
  8. 19 Oct, 2016 1 commit
  9. 28 Sep, 2016 1 commit
    • Rémy Coutable's avatar
      Allow Member.add_user to handle access requesters · 44fe4f60aea6
      Rémy Coutable authored
      
      
      Changes include:
      
      - Ensure Member.add_user is not called directly when not necessary
      - New GroupMember.add_users_to_group to have the same abstraction level as for Project
      - Refactor Member.add_user to take a source instead of an array of members
      - Fix Rubocop offenses
      - Always use Project#add_user instead of project.team.add_user
      - Factorize users addition as members in Member.add_users_to_source
      - Make access_level a keyword argument in GroupMember.add_users_to_group and ProjectMember.add_users_to_projects
      - Destroy any requester before adding them as a member
      - Improve the way we handle access requesters in Member.add_user
        Instead of removing the requester and creating a new member,
        we now simply accepts their access request. This way, they will
        receive a "access request granted" email.
      - Fix error that was previously silently ignored
      - Stop raising when access level is invalid in Member, let Rails validation do their work
      Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
      44fe4f60aea6
  10. 22 Sep, 2016 3 commits
  11. 15 Sep, 2016 1 commit
  12. 18 Aug, 2016 1 commit
  13. 02 Aug, 2016 1 commit
  14. 05 Jul, 2016 1 commit
  15. 01 Jul, 2016 1 commit
  16. 24 Jun, 2016 1 commit
    • Rémy Coutable's avatar
      Fix an information disclosure when requesting access to a group containing private projects · 24ee7c9ecfb4
      Rémy Coutable authored
      
      
      The issue was with the `User#groups` and `User#projects` associations
      which goes through the `User#group_members` and `User#project_members`.
      
      Initially I chose to use a secure approach by storing the requester's
      user ID in `Member#created_by_id` instead of `Member#user_id` because I
      was aware that there was a security risk since I didn't know the
      codebase well enough.
      
      Then during the review, we decided to change that and directly store the
      requester's user ID into `Member#user_id` (for the sake of simplifying
      the code I believe), meaning that every `group_members` / `project_members`
      association would include the requesters by default...
      
      My bad for not checking that all the `group_members` / `project_members`
      associations and the ones that go through them (e.g. `Group#users` and
      `Project#users`) were made safe with the `where(requested_at: nil)` /
      `where(members: { requested_at: nil })` scopes.
      
      Now they are all secure.
      Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
      24ee7c9ecfb4
  17. 16 Jun, 2016 3 commits
  18. 14 Jun, 2016 3 commits
  19. 03 Jun, 2016 2 commits
  20. 09 May, 2016 1 commit
  21. 06 May, 2016 1 commit
  22. 19 Apr, 2016 1 commit
  23. 30 Mar, 2016 1 commit
  24. 21 Mar, 2016 1 commit
  25. 20 Mar, 2016 1 commit
  26. 18 Mar, 2016 1 commit
  27. 11 Mar, 2016 3 commits
  28. 10 Mar, 2016 2 commits