Skip to content
Snippets Groups Projects
  1. 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
  2. Feb 23, 2017
  3. Nov 23, 2016
  4. Nov 18, 2016
  5. 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
  6. 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
  7. Sep 21, 2016
  8. Sep 20, 2016
  9. Sep 13, 2016
  10. Aug 18, 2016
  11. Aug 04, 2016
  12. Aug 02, 2016
  13. Aug 01, 2016
  14. 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
  15. Jul 27, 2016
  16. Jul 26, 2016
  17. Jul 22, 2016
  18. Jul 01, 2016
  19. Jun 29, 2016
  20. Jun 16, 2016
  21. Jun 14, 2016
  22. Jun 13, 2016
  23. Mar 11, 2016
  24. Feb 18, 2016
  25. Oct 15, 2015
    • Yorick Peterse's avatar
      Improve ProjectTeam#max_member_access performance · 3025b711
      Yorick Peterse authored
      By comparing objects in Ruby we can greatly improve the performance of
      this method. In the worst case (should no data be eager loaded) this
      will run the same amount of queries as before, in the best case (when
      data _is_ eager loadeD) it requires no queries at all.
      
      The added benchmark used to produce around 273 iterations per second.
      With this commit this has been increased to almost 40 000 iterations per
      second: a speedup of roughly 145 times.
      
      Combined with eager loading Note associations this results in about 30
      queries less when viewing a single issue, this in turn cuts down the
      loading time by 30-40%.
      3025b711
Loading