Skip to content
Snippets Groups Projects
  1. Mar 23, 2020
  2. Sep 13, 2019
  3. Jan 31, 2019
    • Jan Provaznik's avatar
      Sent notification only to authorized users · 4d7fa59a
      Jan Provaznik authored
      When moving a project, it's possible that some users who had
      access to the project in old path can not access the project
      in the new path.
      
      Because `project_authorizations` records are updated asynchronously,
      when we send the notification about moved project the list of project
      team members contains old project members, we want to notify all these
      members except the old users who can not access the new location.
      Unverified
      4d7fa59a
  4. Jan 23, 2019
    • Jan Provaznik's avatar
      Sent notification only to authorized users · 022f60e8
      Jan Provaznik authored
      When moving a project, it's possible that some users who had
      access to the project in old path can not access the project
      in the new path.
      
      Because `project_authorizations` records are updated asynchronously,
      when we send the notification about moved project the list of project
      team members contains old project members, we want to notify all these
      members except the old users who can not access the new location.
      022f60e8
  5. Jul 26, 2018
  6. Jul 11, 2018
  7. Jun 25, 2018
  8. Mar 07, 2018
  9. Dec 22, 2017
  10. Dec 07, 2017
  11. 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
  12. Sep 06, 2017
  13. Jun 21, 2017
  14. 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
  15. Apr 21, 2017
  16. 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
  17. Feb 23, 2017
  18. Nov 23, 2016
  19. Nov 18, 2016
  20. 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
  21. 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
  22. Sep 21, 2016
  23. Sep 20, 2016
  24. Sep 13, 2016
  25. Aug 18, 2016
  26. Aug 04, 2016
  27. Aug 02, 2016
  28. Aug 01, 2016
  29. 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
  30. Jul 27, 2016
Loading