Fix 403 Access Denied error messages when accessing Labels section in a project
This would occur if the project's issues or merge requests features were disabled. The change in 9bcd36396b caused `can?(current_user, :read_merge_request, project)` to be false if the merge request feature were disabled, so `authorize_labels!` needs to be changed accordingly.
Closes#1813
See merge request !836
Fix duplicate 'Email has already been taken' message when creating a user
devise :validatable and validates uniqueness set on the user email field cause 2 validations to fire when creating a new user with an email address already in use, Issue 6123
@stanhu Thanks for your input on merge request 807, I'll close that one in favour of this as I have added tests
See merge request !817
Support commenting on a diff in side-by-side view
### What does this MR do?
This MR adds support for commenting on a diff in side-by-side (aka parallel) view. It also fixes a JavaScript bug (see !779) when the comment button is clicked on a line that already has a comment.
There is an existing bug where the comment count is not updated when a new comment is added. I'll send a MR for that later.
### Why was this MR needed?
Commenting only worked in "inline" mode. Often the side-by-side view is more conducive to writing comments.
### What are the relevant issue numbers?
Closes https://github.com/gitlabhq/gitlabhq/issues/9283
### Screenshot

See merge request !810
Fix hooks for web based events with external issue references
The creation of cross references for external issues (which would fail)
is now prevented. This fixes a 500 error and the execution of hooks when
creating a merge request or commenting on one.
Fixes#1650, GH-9333.
This regression might have been introduced by
8f8a8ab32b. There is actually a TODO by
@rspeicher mentioning external issues which is lost (unhandled) in a
later commit.
This fix is related to !766 and !804 which fix a similar issue for hooks for
Git based events.
See merge request !794
Fix external issue tracker hook/test for HTTPS URLs
If HTTPS was used for the 'project_url' of an external issue tracker, an
error was raised because a HTTP connection was established to the
default HTTPS port.
The code has been corrected and simplified by using HTTParty.
Additionally, the request now is made directly to the 'project_url'
instead of the extracted root path.
## The bug is reproducible on gitlab.com
1. Set up a new external issue service (I used Redmine)
2. Set the project URL to 'http://example.com/redmine/projects/x' and
click on 'Test settings' => Ok
3. Now set the URL to 'https://example.com/redmine/projects/x' and test
it again => 500
## What is actually happening?
Web servers behave differently when a non-SSL connection is established
to a SSL port:
- Nginx / Apache 2.4: Status code 400
- Apache 2.2: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">...
(no status code line is sent)
- example.com: Empty response, no status code line
## Relevant log entries
```
2015-06-04T11:10:47.972Z 16785 TID-exfks WARN: {"retry"=>true, "queue"=>"project_web_hook", "class"=>"ProjectServiceWorker", "args"=>[...], "error_message"=>"wrong status line: \"<!DOCTYPE HTML PUBLIC \\\"-//IETF//DTD HTML 2.0//EN\\\">\"", "error_class"=>"Net::HTTPBadResponse", ...}
2015-06-04T11:10:47.972Z 16785 TID-exfks WARN: wrong status line: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">"
2015-06-04T11:10:47.972Z 16785 TID-exfks WARN: /usr/lib/ruby/2.1.0/net/http/response.rb:41:in `read_status_line'
[...]
/home/git/gitlab-7.11.4/app/models/project_services/issue_tracker_service.rb:88:in `execute'
/home/git/gitlab-7.11.4/app/workers/project_service_worker.rb:8:in `perform'
[...]
```
See merge request !767
Remove visibility icon from projects list on dashboard and group page
## Why?
Because
* visibility level show on project page anyway
* it does not have much value. Main purpose of project list on dashboard is navigation. Avatar + project name helps this goal. Visibility icon have no effect here
* it makes UI worse because it brings separation between project avatar and name
* without visibility icon we have more space for project name. Especially important for laptops
## Screenshot

P.S. Merge when 7-12-stable is created
See merge request !806
Fix post-receive errors on a push when an external issue tracker is configured
### What does this MR do?
This MR improves upon !766, fixing errors upon a git push that occur only when an external issue tracker (not JIRA) is used. This MR takes into account that external issue trackers, such as JIRA, may close issues. Disabling the processing of post-receive commits when an external issue tracker is configured seems like the wrong behavior.
### Why was this MR needed?
When a user adds an issue reference, the refactoring in 8f8a8ab and a6defd157 caused `project.get_issue` to be called, causing `ExternalIssue` to be returned when an external issue tracker was configured. This object does not have a `close` method, as needed in `CloseService`. Nor does it make sense to associate a `SystemNote` with this object.
GitLab EE uses a [special case for JIRA](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/app/services/git_push_service.rb#L87). I would recommend moving this logic into `CloseService` too.
### What are the relevant issue numbers?
* Closes#1700
* Closes#1720
See merge request !804