Skip to content
Snippets Groups Projects
  1. Dec 07, 2017
  2. Sep 18, 2017
    • Stan Hu's avatar
      Eliminate N+1 queries in loading discussions.json endpoint · 8690ca5c
      Stan Hu authored
      In #37955,we see that the profile had a number of N+1 queries from repeated
      access to `cross_reference_not_visible_for?`. This was optimized in previous
      versions of GitLab by rendering all notes at once, counting the number of
      visible references, and then using that number to check whether a system note
      should be fully redacted.
      
      There was also another N+1 query calling `ProjectTeam#member?`, which did not
      take advantage of an optimization in prepare_notes_for_rendering that would
      preload the maximum access level per project.
      
      Closes #37955
      8690ca5c
  3. Sep 06, 2017
  4. Jun 21, 2017
  5. Jun 01, 2017
    • Sean McGivern's avatar
      Fix N+1 queries for non-members in comment threads · 7f73f440
      Sean McGivern authored
      When getting the max member access for a group of users, we stored the results
      in RequestStore. However, this will only return results for project members, so
      anyone who wasn't a member of the project would be checked once at the start,
      and then once for each comment they made. These queries are generally quite
      fast, but no query is faster!
      7f73f440
  6. Apr 21, 2017
  7. Mar 31, 2017
    • Stan Hu's avatar
      Eliminate unnecessary queries that add ~500 ms of load time for a large issue · ced1bbab
      Stan Hu authored
      Looking at the SQL log, we see useless queries such as:
      
      ```
      D, [2017-03-22T03:25:00.726710 #2629] DEBUG -- :    (235.9ms)  SELECT MAX("project_authorizations"."access_level") AS maximum_access_level, "project_authorizations"."user_id" AS project_authorizations_user_id FROM "project_authorizations" WHERE "project_authorizations"."project_id" = 13083 AND 1=0 GROUP BY "project_authorizations"."user_id"  [["project_id", 13083]]
      ```
      ced1bbab
  8. Feb 23, 2017
  9. Nov 23, 2016
  10. Nov 18, 2016
  11. Oct 28, 2016
    • Sean McGivern's avatar
      Fix project member access for group links · db9979bc
      Sean McGivern authored
      `ProjectTeam#find_member` doesn't take group links into account. It was
      used in two places:
      
      1. An admin view - it can stay here.
      2. `ProjectTeam#member?`, which is often used to decide if a user has
         access to view something.
      
      This second part broke confidential issues viewing. `IssuesFinder` ends
      up delegating to `Project#authorized_for_user?`, which does consider
      group links, so users with access to the project via a group link could
      see confidential issues on the index page. However, `IssuesPolicy` used
      `ProjectTeam#member?`, so the same user couldn't view the issue when
      going to it directly.
      db9979bc
  12. Sep 28, 2016
    • Rémy Coutable's avatar
      Allow Member.add_user to handle access requesters · ec0061a9
      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>
      ec0061a9
  13. Sep 21, 2016
  14. Sep 20, 2016
  15. Sep 13, 2016
  16. Aug 18, 2016
  17. Aug 04, 2016
  18. Aug 02, 2016
  19. Aug 01, 2016
  20. Jul 29, 2016
    • Timothy Andrew's avatar
      Implement review comments from @dbalexandre. · 7b2ad2d5
      Timothy Andrew authored
      1. Remove `master_or_greater?` and `developer_or_greater?` in favor of
         `max_member_access`, which is a lot nicer.
      
      2. Remove a number of instances of `include Gitlab::Database::MigrationHelpers`
         in migrations that don't need this module. Also remove comments where
         not necessary.
      
      3. Remove duplicate entry in CHANGELOG.
      
      4. Move `ProtectedBranchAccessSelect` from Coffeescript to ES6.
      
      5. Split the `set_access_levels!` method in two - one each for `merge` and
         `push` access levels.
      7b2ad2d5
    • Timothy Andrew's avatar
      Admins count as masters too. · cc1cebdc
      Timothy Andrew authored
      1. In the context of protected branches.
      
      2. Test this behaviour.
      cc1cebdc
  21. Jul 27, 2016
  22. Jul 26, 2016
  23. Jul 22, 2016
  24. Jul 01, 2016
  25. Jun 29, 2016
  26. Jun 16, 2016
  27. Jun 14, 2016
    • Rémy Coutable's avatar
      UI and copywriting improvements · 515205d3
      Rémy Coutable authored
      
      + Move 'Edit Project/Group' out of membership-related partial
      + Show the access request buttons only to logged-in users
      + Put the request access buttons out of in a more visible button
      + Improve the copy in the #remove_member_message helper
      
      Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
      515205d3
Loading