Commit Graph
2829 Commits
Author SHA1 Message Date
Rémy Coutable 074c239390 Merge branch 'issue_14012' into 'master'
Fix problem when creating milestones in groups without projects

Fixes #14012 

See merge request !3481
2016-04-07 15:19:56 +00:00
Felipe Artur 0bef4b9764 Implement review suggestions 2016-04-07 10:59:24 -03:00
Rémy Coutable 237324cc17 Merge branch 'fix/2fa-authentication-spoofing' into 'master'
Fix 2FA authentication spoofing

## Summary

This is security fix for vulnerability described at 
https://gitlab.com/gitlab-org/gitlab-ce/issues/14900.

Attacker was able to bypass password authentication of users that have 2FA enabled, and consequently sign is as a different user, without knowing his password, if he managed to guess 2FA One Time Password for that user.

It was also possible to enumerate users and check if they have 2FA enabled, because GitLab responded with different error for each case.

## Fix

This MR attempts to change default user search scope if `otp_user_id` session variable has been set. If it is present, it means that user has 2FA enabled, and has already been verified with login and password. In this case we should look for user with `otp_user_id` first, before picking it up by `login`.

Both, 2FA authentication spoofing and 2FA discovery have been covered by specs.

## Further work

Current 2FA code is a bit tricky, so it probably needs some refactoring.



See merge request !1947
2016-04-07 11:56:44 +00:00
Grzegorz Bizon 00da609cfd Fix 2FA authentication spoofing vulnerability
This commit attempts to change default user search scope if otp_user_id
session variable has been set. If it is present, it means that user has
2FA enabled, and has already been verified with login and password. In
this case we should look for user with otp_user_id first, before picking
it up by login.
2016-04-07 11:19:29 +02:00
Rémy Coutable 8eae7b1088 Merge branch 'feature/expose-builds-badge' into 'master'
Expose badges

This MR exposes badge somewhere in visible place.

![expose_badges](/uploads/d2e290d3013d1ef2b1bdeebbbe2c5d8b/expose_badges.png)

Closes #13801

See merge request !3326
2016-04-07 08:40:15 +00:00
Rémy Coutable d62a3decf9 Merge branch 'fix_14638' into 'master'
Fixes #14638.

The SQL query was ambiguous and in this case we want to filter projects.

See merge request !3462
2016-04-07 08:35:38 +00:00
Stan Hu 924e4b3700 Return status code 303 after a branch DELETE operation to avoid project deletion
Closes #14994
2016-04-06 21:11:10 -07:00
Robert Speicher 936be025cd Merge branch 'saml-external-groups' into 'master'
Allow SAML to identify external users and set them as such

Related to #4009

Fixes #14577

This allows SAML to retrieve group information form the `SAML Response`
and match that to a setting that will flag all matching users as external.

See merge request !3530
2016-04-07 00:35:08 +00:00
Robert Speicher 730625f022 Merge branch 'patch/fix-markdown-preview-wikis' into 'master'
Wiki preview URL converting problem [via Markdown]

Current implementation when rendering the preview, thinks relative links are for project repository files.

We are creating a new preview route that will define correct context data to render for wikis instead.

Fixes #2380, #1184

See merge request !3461
2016-04-07 00:17:21 +00:00
Grzegorz Bizon 7689e87854 Use default branch when displaying list of badges 2016-04-06 19:56:35 +02:00
Grzegorz Bizon 5f32b82a80 Change name of badge variable in badges controller 2016-04-06 19:56:34 +02:00
Grzegorz Bizon a3a93ba4b0 Expose project badges in project settings menu 2016-04-06 19:56:34 +02:00
Grzegorz Bizon 97a2de9e03 Make it possible to switch ref in badges view 2016-04-06 19:56:34 +02:00
Grzegorz Bizon b7fa7c4d59 Extend build status badge, add html/markdown methods 2016-04-06 19:56:34 +02:00
Grzegorz Bizon 88fc7ccdda Add project badges view prototype 2016-04-06 19:56:34 +02:00
PotHix 222e1dc59c Fixes #14638.
The SQL query was ambiguous and in this case we want to filter projects.
2016-04-06 13:56:28 -03:00
Stan Hu 779b9eac57 Merge branch 'fix-project-path-rename' into 'master'
Fix Error 500 after renaming a project path

Renaming the path of a project would result in an Error 500 due to `@repository` being memoized with the old path. An Error 500 would result:

```
Started GET "/testing2/test1" for 127.0.0.1 at 2016-04-04 12:42:30 +0000
Processing by ProjectsController#show as HTML
  Parameters: {"namespace_id"=>"testing2", "id"=>"test1"}
Completed 200 OK in 637ms (Views: 194.2ms | ActiveRecord: 111.8ms)
Started GET "/testing2/test1/edit" for 127.0.0.1 at 2016-04-04 12:42:33 +0000
Processing by ProjectsController#edit as HTML
  Parameters: {"namespace_id"=>"testing2", "id"=>"test1"}
Completed 200 OK in 594ms (Views: 183.8ms | ActiveRecord: 87.4ms)
Started PATCH "/testing2/test1" for 127.0.0.1 at 2016-04-04 12:42:41 +0000
Processing by ProjectsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "project"=>{"nam
e"=>"test123", "path"=>"test123"}, "namespace_id"=>"testing2", "id"=>"test1"}
Completed 500 Internal Server Error in 1852ms (ActiveRecord: 124.0ms)

ActionView::Template::Error (no repository for such path):
    2:   %legend
    3:     Builds:
    4:
    5:   - unless @repository.gitlab_ci_yml
    6:     .form-group
    7:       .col-sm-offset-2.col-sm-10
    8:         %p Builds need to be configured before you can begin using Contin
uous Integration.
  app/models/repository.rb:59:in `block in empty?'
  lib/repository_cache.rb:19:in `fetch'
  app/models/repository.rb:59:in `empty?'
  app/models/repository.rb:471:in `gitlab_ci_yml'
  app/views/projects/_builds_settings.html.haml:5:in `_app_views_projects__build
s_settings_html_haml__782034335636359229_73397600'
  app/views/projects/edit.html.haml:87:in `block in _app_views_projects_edit_htm
l_haml___2388082585934859365_47390860'
  app/views/projects/edit.html.haml:8:in `_app_views_projects_edit_html_haml___2
388082585934859365_47390860'
  app/controllers/projects_controller.rb:54:in `block (2 levels) in update'
  app/controllers/projects_controller.rb:43:in `update'
  lib/gitlab/middleware/go.rb:16:in `call'
```

Closes #14885

See merge request !3528
2016-04-05 22:16:15 +00:00
Stan Hu 934f1e9097 Fix Error 500 after renaming a project path
Closes #14885
2016-04-05 11:18:13 -07:00
Felipe Artur 32c7e42b61 Improve code 2016-04-05 11:53:39 -03:00
Felipe Artur 5d42803045 Improve code 2016-04-05 11:53:39 -03:00
Felipe Artur 1ba9a91c6d Fix problem when creating milestones in groups without projects 2016-04-05 11:53:39 -03:00
Grzegorz Bizon bb9c194c23 Respond 404 when unauthorized user imports members 2016-04-05 14:37:06 +02:00
Grzegorz Bizon c52b5c92fb Do not leak project exists when importing members
When importing members, and user does not have permissions to read
members in a source project, do not leak information about source
project existence. Notifiy user that project has not been found instead.
2016-04-05 13:55:15 +02:00
Grzegorz Bizon b248ee9381 Check permissions when importing project members
Closes #14899
2016-04-05 13:32:28 +02:00
Patricio Cano e99855bfe4 Avoid saving again if the user attributes haven't changed 2016-04-04 19:10:59 -05:00
Douwe Maan f505c753b0 Merge branch 'fix_remove_fork_link' into 'master'
Remove fork link closes all merge requests opened on source project

Currently, if you:

- create a fork
- open a merge request on the source project
- remove the fork link

The created MR cannot be closed.

With this MR, all pending MR is closed when the fork link is removed.

See merge request !3189
2016-04-04 15:37:08 +00:00
Douwe Maan fee7ad8627 Merge branch 'build-updates' into 'master'
Build updates

Fixes #10851 

![build-updates](/uploads/52e09e679ca457f3d818f9a12fd8382b/build-updates.gif)


See merge request !2604
2016-04-03 13:22:27 +00:00
connorshea 85cc172959 Remove "Congratulations!" tweet button on newly-created project.
I’ve removed everything related to the feature based on this commit:
ce08f919f34fd8849834365

Resolves #10857.
2016-03-31 17:09:36 -06:00
Dmitriy Zaporozhets fa9d140f00 Merge branch 'precompile-emoji-urls' into 'master'
Pre-calculate Emoji digests

cc @dzaporozhets @rspeicher 

@marin Do you happen to know if we allow users to configure asset hosts anywhere in Omnibus and such? I've not been able to find any reference to "asset_host" so it seems we don't allow this (which is a good thing as this simplifies the code).

See merge request !3458
2016-03-30 18:23:13 +00:00
Gabriel Mazetto b69f8a62b2 Add specific markdown_preview route for Wikis 2016-03-30 15:04:58 -03:00
Yorick Peterse 5830d80b8d Pre-calculate Emoji digests
By pre-calculating the digests we can manually construct the emoji URLs,
removing the need for using Rails' asset URL helpers. The reason we
don't want to use these helpers for Emojis is two-fold:

1. Rails' image_url() method is slow, really slow. For one it _might_
   have to calculate digests but it also performs a lot of other
   intensive operations (judging by the source code and based on
   measuring timings).

2. We have a lot of Emoji which coupled with the above can result in it
   taking minutes to load Emoji autocomplete data.

Using this pre-calculation setup generating the digests takes around 7
seconds (including the time it takes to start Rails/Rake), and only
around 600 milliseconds to load _all_ the autocomplete data of a project
(measured locally).

This commit _does_ change the Emoji URLs from absolute to relative URLs
as these are much easier to generate.

To update the Emoji data simply run:

    rake gemojione:digests

Then commit any changes.

Fixes gitlab-org/gitlab-ce#14009
2016-03-30 19:29:17 +02:00
Robert Speicher 3d4848615c Merge branch 'patch/fix-mergerequest-diff' into 'master'
Fix Raw / Rendered diff producing different results on merge requests

The raw diff endpoint (`merge_requests/####.diff`) produces a diff based on `target_branch` instead of the original branching point. Same is valid for `merge_requests/####.patch`.

Fixes #14680, #3017

See merge request !3450
2016-03-30 16:02:19 +00:00
Robert Speicher 489165e343 Merge branch 'refactor/project-badges-interface' into 'master'
Refactor builds badge, encapsulate inside a class

This merge requests attempts to introduce interface for all badges.
Currently we only have a build badge, but other badges are in plans,
like coverage badge.

See merge request !3403
2016-03-30 15:42:26 +00:00
Jacob SchatzandJacob Schatz 750cd5c0e0 Add json response for user avatar in merge request 2016-03-30 07:26:09 -04:00
Gabriel Mazetto a9b2a2744c Use diff_base_commit instead of target_branch to generate diffs 2016-03-29 23:59:51 -03:00
Phil Hughes 88024b17c0 Standardised the output of the JSON to always include the name
The frontend will then always use the name as the ID - like previous
2016-03-29 11:59:13 +01:00
Rémy Coutable 00726e4df9 Merge branch 'fix/nomethod-error-on-ci' into 'master'
Fix error when visiting CI root path

Closes #14528, closes #14687

See merge request !3377
2016-03-29 10:32:38 +00:00
Douwe Maan a7ca8689f7 Merge branch 'fix-14607' into 'master'
Ensure private project snippets are not viewable by unauthorized people

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/14607

See merge request !1946
2016-03-29 08:21:48 +00:00
Grzegorz Bizon 4cd1b9f4d8 Refactor builds badge, encapsulate inside a class 2016-03-29 09:01:19 +02:00
Grzegorz Bizon b7685b57d3 Redirect to root path when visiting /ci 2016-03-29 08:04:17 +02:00
Dmitriy Zaporozhets 55df9a70bf Merge branch 'functional-sidebar' into 'master'
Updates sidebar to use new dropdowns for issues and merge requests

Fixes #12935, #13164 

See merge request !3175
2016-03-28 20:59:13 +00:00
Rémy Coutable 4f07c0a107 Ensure project snippets have their own access level 2016-03-25 18:51:17 +01:00
Jacob Schatz 53a831124e Edit button leaves modal open
Add user avatar to user selection
2016-03-25 09:54:05 -04:00
Alfredo SumaranandJacob Schatz deee55f0bb Remove unnecessary sentence 2016-03-25 08:10:25 -04:00
Jacob Schatz 22aef62808 New dropdowns work on merge requests too! 2016-03-25 08:07:57 -04:00
Jacob Schatz e8d8411016 Adds new dropdown ajax to user selection 2016-03-25 08:07:57 -04:00
Jacob Schatz 3753ace9ba Add labels as proper POST arrays using new dropdown 2016-03-25 08:07:57 -04:00
Jacob Schatz 024dc8073e Add milestone sidebar update via JSON 2016-03-25 08:04:57 -04:00
Jacob Schatz a76ee508fb Ajax call to milestones via new dropdowns 2016-03-25 08:04:57 -04:00
Jacob Schatz ff86138d76 Sidebar milestone updatable via JSON 2016-03-25 08:04:57 -04:00