Commit Graph

26 Commits

Author SHA1 Message Date
Jacopo c6bddeacf4 Updates code using class_methods over module ClassMethods 2018-08-29 16:56:34 +02:00
gfyoung 15b878e27e Enable more frozen string in app/models/**/*.rb
Partially addresses #47424.
2018-08-07 00:37:36 -07:00
Mario de la Ossa 5c2078838b
Backport of 4084-epics-username-autocomplete 2018-05-04 11:33:09 -06:00
Lin Jen-Shin 6a4ee9aa71 Allow simple ivar ||= form. Update accordingly 2017-09-19 01:29:32 +08:00
Lin Jen-Shin 9ae92b8caa Add cop to make sure we don't use ivar in a module 2017-09-18 21:23:45 +08:00
Robert Speicher 260c8da060 Whitelist or fix additional `Gitlab/PublicSend` cop violations
An upcoming update to rubocop-gitlab-security added additional
violations.
2017-08-14 12:14:11 -04:00
Jarka Kadlecova 0c350b7939 address comments 2017-01-25 10:10:05 +01:00
Jarka Kadlecova d6b11dafd3 Support notes without project 2017-01-18 18:38:17 -05:00
Douglas Barbosa Alexandre 16c9abf1ee Use cattr_accessor instead duplicating code on NoteOnDiff concern 2016-07-15 13:49:16 -03:00
Paco Guzman bfce7349ea Cache Participable#participants in instance variable 2016-06-21 12:54:12 +02:00
Yorick Peterse 580d250166
Refactor Participable
There are several changes to this module:

1. The use of an explicit stack in Participable#participants
2. Proc behaviour has been changed
3. Batch permissions checking

== Explicit Stack

Participable#participants no longer uses recursion to process "self" and
all child objects, instead it uses an Array and processes objects in
breadth-first order. This allows us to for example create a single
Gitlab::ReferenceExtractor instance and pass this to any Procs. Re-using
a ReferenceExtractor removes the need for running potentially many SQL
queries every time a Proc is called on a new object.

== Proc Behaviour Changed

Previously a Proc in Participable was expected to return an Array of
User instances. This has been changed and instead it's now expected that
a Proc modifies the Gitlab::ReferenceExtractor passed to it. The return
value of the Proc is ignored.

== Permissions Checking

The method Participable#participants uses
Ability.users_that_can_read_project to check if the returned users have
access to the project of "self" _without_ running multiple SQL queries
for every user.
2016-06-01 16:22:35 +02:00
Douwe Maan 5ef2048f65 Fix issue related cross-project MRs 2015-12-21 15:36:08 +01:00
Douwe Maan 7781bda9bd Move Markdown/reference logic from Gitlab::Markdown to Banzai 2015-12-15 15:51:16 +01:00
Douwe Maan 95f0440a78 Merge branch 'master' into rs-redactor-filter 2015-10-15 11:26:58 +02:00
Douwe Maan 4a5b77188e Participable doesn't need to know about Mentionable 2015-10-14 16:20:11 +02:00
Douwe Maan d6fb96b927 Have Issue#participants load all users mentioned in notes using a single query 2015-10-14 09:17:05 +02:00
Douwe Maan 7a0cc665ff Remove useless assignment 2015-10-12 15:34:08 +02:00
Douwe Maan 41075bad8d Chaining ftw 2015-10-12 14:39:33 +02:00
Douwe Maan b0164771ec Simplify code around (cross)-references 2015-10-12 11:54:46 +02:00
Dmitriy Zaporozhets a5f23435f7
Improve performance for issue#show page
* store @participants in variable
* store result of subscribed? call into variable

In total it reduce amount of SQL queries for issue with 10 comments/participants twice.

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-24 12:49:34 +02:00
Douwe Maan 0b7c4fe048 Don't include users without project access in participants. 2015-05-15 12:46:52 +02:00
Douwe Maan 77dc71d550 Fix mentioning of private groups. 2015-05-14 13:15:13 +02:00
Douwe Maan 04020d5e20 Explain purpose and usage. 2015-04-24 12:31:16 +02:00
Douwe Maan 6f8ff08c65 Fix behavior for Enumerable-like ActiveRecord relations. 2015-04-24 12:31:16 +02:00
Douwe Maan 0db79443ee Satisfy Rubocop. 2015-04-24 12:30:37 +02:00
Douwe Maan e739eb036d Move participants method to shared Participable concern. 2015-04-24 12:30:36 +02:00