<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/spec/models/concerns, branch api-shared-groups</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Merge branch 'master' into dev-master</title>
<updated>2016-07-02T20:58:21+00:00</updated>
<author>
<name>Tomasz Maczukin</name>
<email>tomasz@maczukin.pl</email>
</author>
<published>2016-07-02T20:58:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=f1a85747ca94cfe0aea25416da1e2ba498b636be'/>
<id>f1a85747ca94cfe0aea25416da1e2ba498b636be</id>
<content type='text'>
* master: (98 commits)
  Enable Style/EmptyLines cop, remove redundant ones
  Update CHANGELOG
  Cache results from jQuery selectors to retrieve namespace name
  Fix import button when import fail due the namespace already been taken
  Fix snippets comments not displayed
  Fix emoji paths in relative root configurations
  Exclude requesters from Project#members, Group#members and User#members
  Upgrade Thin from 1.6.1 to 1.7.0.
  Many squashed commits
  Cache autocomplete results
  Upgrade Sidekiq from 4.1.2 to 4.1.4.
  Upgrade seed-fu from 2.3.5 to 2.3.6
  use has_many relationship with events
  Support creating a todo on issuables via API
  Expose target, filter by state as string
  Add todos API documentation and changelog
  Improve the request / withdraw access button
  Metrics for Rouge::Plugins::Redcarpet and Rouge::Formatters::HTMLGitlab
  Groundwork for Kerberos SPNEGO (EE feature)
  Update CHANGELOG 8.9.5 for runners related fixes
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* master: (98 commits)
  Enable Style/EmptyLines cop, remove redundant ones
  Update CHANGELOG
  Cache results from jQuery selectors to retrieve namespace name
  Fix import button when import fail due the namespace already been taken
  Fix snippets comments not displayed
  Fix emoji paths in relative root configurations
  Exclude requesters from Project#members, Group#members and User#members
  Upgrade Thin from 1.6.1 to 1.7.0.
  Many squashed commits
  Cache autocomplete results
  Upgrade Sidekiq from 4.1.2 to 4.1.4.
  Upgrade seed-fu from 2.3.5 to 2.3.6
  use has_many relationship with events
  Support creating a todo on issuables via API
  Expose target, filter by state as string
  Add todos API documentation and changelog
  Improve the request / withdraw access button
  Metrics for Rouge::Plugins::Redcarpet and Rouge::Formatters::HTMLGitlab
  Groundwork for Kerberos SPNEGO (EE feature)
  Update CHANGELOG 8.9.5 for runners related fixes
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'explicit-requesters-scope' into 'master'</title>
<updated>2016-07-01T22:23:26+00:00</updated>
<author>
<name>Douwe Maan</name>
<email>douwe@gitlab.com</email>
</author>
<published>2016-07-01T22:23:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d1c94f034bbf688248f46482b941fe673940c6b0'/>
<id>d1c94f034bbf688248f46482b941fe673940c6b0</id>
<content type='text'>

Exclude requesters from Project#members, Group#members and User#members

## What does this MR do?

It excludes requesters from the `Project#members`, `Group#members` and `User#members` associations, and adds new `Project#requesters` and `Group#requesters` associations.

## Are there points in the code the reviewer needs to double check?

No.

## Why was this MR needed?

Without this, if you call `project.members`, requesters are included in the results! This is at best misleading, and at worst can lead to security issues. By excluding requesters from the `#members` associations, we avoid introducing security inadvertently since you have to call the `#requesters` association explicitly to get requesters.

## What are the relevant issue numbers?

This is something I realized while fixing the security issue #19102.

## Does this MR meet the acceptance criteria?

- [x] I don't think this needs a CHANGELOG since this is an internal change
- Tests
  - [x] Added for this feature/bug
  - [ ] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

See merge request !4946</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

Exclude requesters from Project#members, Group#members and User#members

## What does this MR do?

It excludes requesters from the `Project#members`, `Group#members` and `User#members` associations, and adds new `Project#requesters` and `Group#requesters` associations.

## Are there points in the code the reviewer needs to double check?

No.

## Why was this MR needed?

Without this, if you call `project.members`, requesters are included in the results! This is at best misleading, and at worst can lead to security issues. By excluding requesters from the `#members` associations, we avoid introducing security inadvertently since you have to call the `#requesters` association explicitly to get requesters.

## What are the relevant issue numbers?

This is something I realized while fixing the security issue #19102.

## Does this MR meet the acceptance criteria?

- [x] I don't think this needs a CHANGELOG since this is an internal change
- Tests
  - [x] Added for this feature/bug
  - [ ] All builds are passing
- [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
- [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
- [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)

See merge request !4946</pre>
</div>
</content>
</entry>
<entry>
<title>Enable Style/EmptyLines cop, remove redundant ones</title>
<updated>2016-07-01T19:56:17+00:00</updated>
<author>
<name>Grzegorz Bizon</name>
<email>grzesiek.bizon@gmail.com</email>
</author>
<published>2016-07-01T19:56:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=9e211091a85c20adea63b89111240350d6d8ffcb'/>
<id>9e211091a85c20adea63b89111240350d6d8ffcb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Exclude requesters from Project#members, Group#members and User#members</title>
<updated>2016-07-01T15:44:46+00:00</updated>
<author>
<name>Rémy Coutable</name>
<email>remy@rymai.me</email>
</author>
<published>2016-06-27T14:20:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=bd78f5733ca546bf940438b84aefa2fa3abacb36'/>
<id>bd78f5733ca546bf940438b84aefa2fa3abacb36</id>
<content type='text'>
And create new Project#requesters, Group#requesters scopes.

Signed-off-by: Rémy Coutable &lt;remy@rymai.me&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
And create new Project#requesters, Group#requesters scopes.

Signed-off-by: Rémy Coutable &lt;remy@rymai.me&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure logged-out users can't see private refs</title>
<updated>2016-06-30T15:36:10+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2016-06-27T12:24:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=db0d3fc3e96e5f2b0f642ea3240d5265c3ee659c'/>
<id>db0d3fc3e96e5f2b0f642ea3240d5265c3ee659c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix pagination on sorts with lots of ties</title>
<updated>2016-06-23T14:26:50+00:00</updated>
<author>
<name>Sean McGivern</name>
<email>sean@gitlab.com</email>
</author>
<published>2016-06-23T13:15:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d7a5a28c53c3af710ceb8ef4867ea61af7462903'/>
<id>d7a5a28c53c3af710ceb8ef4867ea61af7462903</id>
<content type='text'>
Postgres and MySQL don't guarantee that pagination with `LIMIT` and
`OFFSET` will work if the ordering isn't unique. From the Postgres docs:

&gt; When using `LIMIT`, it is important to use an `ORDER BY` clause that
&gt; constrains the result rows into a unique order. Otherwise you will get
&gt; an unpredictable subset of the query's rows

Before:

    [1] pry(main)&gt; issues = 1.upto(Issue.count).map { |i| Issue.sort('priority').page(i).per(1).map(&amp;:id) }.flatten
    [2] pry(main)&gt; issues.count
    =&gt; 81
    [3] pry(main)&gt; issues.uniq.count
    =&gt; 42

After:

    [1] pry(main)&gt; issues = 1.upto(Issue.count).map { |i| Issue.sort('priority').page(i).per(1).map(&amp;:id) }.flatten
    [2] pry(main)&gt; issues.count
    =&gt; 81
    [3] pry(main)&gt; issues.uniq.count
    =&gt; 81
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Postgres and MySQL don't guarantee that pagination with `LIMIT` and
`OFFSET` will work if the ordering isn't unique. From the Postgres docs:

&gt; When using `LIMIT`, it is important to use an `ORDER BY` clause that
&gt; constrains the result rows into a unique order. Otherwise you will get
&gt; an unpredictable subset of the query's rows

Before:

    [1] pry(main)&gt; issues = 1.upto(Issue.count).map { |i| Issue.sort('priority').page(i).per(1).map(&amp;:id) }.flatten
    [2] pry(main)&gt; issues.count
    =&gt; 81
    [3] pry(main)&gt; issues.uniq.count
    =&gt; 42

After:

    [1] pry(main)&gt; issues = 1.upto(Issue.count).map { |i| Issue.sort('priority').page(i).per(1).map(&amp;:id) }.flatten
    [2] pry(main)&gt; issues.count
    =&gt; 81
    [3] pry(main)&gt; issues.uniq.count
    =&gt; 81
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache Participable#participants in instance variable</title>
<updated>2016-06-21T10:54:12+00:00</updated>
<author>
<name>Paco Guzman</name>
<email>pacoguzmanp@gmail.com</email>
</author>
<published>2016-06-20T15:49:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=bfce7349ea7c2efcbeb3fb34a207aad65d3129e3'/>
<id>bfce7349ea7c2efcbeb3fb34a207aad65d3129e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>UI and copywriting improvements</title>
<updated>2016-06-14T11:18:14+00:00</updated>
<author>
<name>Rémy Coutable</name>
<email>remy@rymai.me</email>
</author>
<published>2016-06-02T16:05:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=515205d3c1c6655302ed0ae44cc5954dead7ae79'/>
<id>515205d3c1c6655302ed0ae44cc5954dead7ae79</id>
<content type='text'>
+ 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: Rémy Coutable &lt;remy@rymai.me&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
+ 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: Rémy Coutable &lt;remy@rymai.me&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add request access for groups</title>
<updated>2016-06-14T11:07:26+00:00</updated>
<author>
<name>Rémy Coutable</name>
<email>remy@rymai.me</email>
</author>
<published>2016-04-18T16:53:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d26f81239a33b80694783ee35f0da0e2ed082c9b'/>
<id>d26f81239a33b80694783ee35f0da0e2ed082c9b</id>
<content type='text'>
Signed-off-by: Rémy Coutable &lt;remy@rymai.me&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Rémy Coutable &lt;remy@rymai.me&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Project members with guest role can't access confidential issues</title>
<updated>2016-06-13T22:32:00+00:00</updated>
<author>
<name>Douglas Barbosa Alexandre</name>
<email>dbalexandre@gmail.com</email>
</author>
<published>2016-06-06T19:13:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=b56c45675019baaaf47615d51c08d5caa0734ad3'/>
<id>b56c45675019baaaf47615d51c08d5caa0734ad3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
