revert caching of note text
This MR reverts the caching of note texts because what is rendered as a link in Markdown depends on the user's access to other projects and groups.
Until we find a solution that doesn't decrease security, let's not use the cache for this.
See discussion in gitlab-org/gitlab-ce!911 for more information.
/cc @DouweM @stanhu @vsizov
See merge request !1014
Speed up security feature specs
Before: `rspec spec/features/security/ 0.12s user 0.04s system 0% cpu 3:38.00 total`
After: `rspec spec/features/security/ 0.12s user 0.04s system 0% cpu 1:40.58 total`
The majority of the speed improvements is from two things:
1. Instead of using our standard `login_as` helper in the matchers, we take advantage
of the `Warden::Test::Helpers` version of the method which bypasses the login form
and logs the user in directly. We were essentially testing that filling out the login
form works hundreds of times.
2. There were many tests that verified if a user of a certain access level
(master, owner, reporter, guest) had access to a resource. Unfortunately we were
creating every type of user for each test even though a test was only verifying one of
them at a time. Now the tests only create the one user role they're testing.
See merge request !1023
The user being created was no different than what `be_allowed_for` was
doing behind the scenes so we were essentially testing all user-level
accesses twice.
Use project repository expire_cache to clear cache in test
Clearing the entire Redis cache in 643557d for the `branches_spec.rb` may be causing issues. Just clear what we need.
See merge request !1022
Fix 404 error in files view after deleting the last file in a repository
Here's the logic:
1. In `TreeController`, `require_non_empty_project` will prevent `show` from being called if the project is empty. That means all calls to `show` will be guaranteed to have at least 1 commit.
2. If the ref name is not valid, then return a 404. This ensures that at least the controller is looking at a valid branch/tag/SHA ID.
3. This leaves a number of cases:
```
3a. Valid ref, valid directory
3b. Valid ref, valid filename
3c. Valid ref, invalid path
3d. Valid ref, no files
```
Case 3a: The tree will not be `empty?` and will pass through the whole function.
Case 3b: The tree will be `empty?` but the `blob_at` will resolve properly and trigger a redirect to the file.
Case 3c: In this case, a path is given. Return 404 if it cannot be resolved neither as a tree nor a blob.
Case 3d: In this case, no path is given. If the tree is empty, this means it's an empty branch and just fall through.
Example broken branch: https://gitlab.com/gitlab-org/gitlab-test/tree/empty-branchCloses#1362
See merge request !1010
You need to store your DB encryption key
You can break two-factor authentication for existing users when
restoring a backup if you lost your DB encryption key.
See merge request !1015
Don't stop if database.sql.gz already exists
The existing behavior of the backups is to overwrite whatever data
was still there in the scratch directories. This broke when we added
a 'gzip' step because 'gzip database.sql' will fail if 'database.sql.gz'
already exists. Doing 'rm -f database.sql.gz' before the 'gzip'
avoids this failure.
See merge request !1011
The existing behavior of the backups is to overwrite whatever data
was still there in the scratch directories. This broke when we added
a 'gzip' step because 'gzip database.sql' will fail if 'database.sql.gz'
already exists. Doing 'rm -f database.sql.gz' before the 'gzip'
avoids this failure.
Fix change log for 7.11 and move entry to 7.12
The change log for 7.11 was accidentally split in
3865a1d925. Additionally, the change added
with this commit did not make it into 7.11 according to
`git branch --contains` and it has not been cherry picked to 7-11-stable
so the entry is moved to 7.12.
Refs GH-5625, GH-9318.
See merge request !1009
The change log for 7.11 was accidentally split in
3865a1d925. Additionally, the change added
with this commit did not make it into 7.11 according to
`git branch --contains` and it has not been cherry picked to 7-11-stable
so the entry is moved to 7.12.
Refs GH-5625, GH-9318.
[ci skip]
GoogleCode importer: Do not care about casing of image file extensions
When a GoogleCode repository contains an attached image with an UPPERCASE file extension, it's not inlined.
/CC @DouweM
See merge request !1003
Fix (i.e. prevent) access to disabled features for unauthenticated users
Unauthenticated users had access to disabled features of public
projects. The code has been slightly refactored so that feature checks
are done in a separate method and can also be applied for public access.
See merge request !1006
Remove repository graph log to fix slow cache updates after push event
Recalculating `graph_log` took minutes on a large repository since each
of the 6000 commits would need to calculate the diff. Since graph_log
does not appear to be used, remove it from the list of things to update.
For the Linux kernel repository, this reduced the `ProjectCacheWorker` time
from 8+ minutes to 16 seconds.
Closes#2016
See merge request !1005
Set OmniAuth full_host parameter to ensure redirect URIs are correct
### What does this MR do?
This MR sets the OmniAuth `full_host` parameter to the configured GitLab URL to ensure the `redirect_uri` parameter is called with the right GitLab host.
### Why was this MR needed?
[OmniAuth attempts to grab the request URI](http://awesomeprogrammer.com/blog/2012/12/09/dealing-with-omniauth-redirect-uri-mismatch-invalid-port-number-gotcha/) and use that. If you set up a reverse proxy that terminates SSL at the Web server layer (e.g. https://gitlab.domain.com), omniauth will use the internal URL (e.g. http://my-host:8080) in its redirect URI unless all the Web server headers are properly set (e.g. `X-Forwarded-Port`, etc.). This is easy to forget or mess up, and it's better to ensure that OmniAuth has the right value from the start.
### What are the relevant issue numbers?
Closes#1967
See merge request !991
Unauthenticated users had access to disabled features of public
projects. The code has been slightly refactored so that feature checks
are done in a separate method and can also be applied for public access.
Recalculating graph_log took minutes on a large repository since each
of the 6000 commits would need to calculate the diff. Since graph_log
does not appear to be used, remove it from the list of things to update.
For the Linux kernel repository, this reduced the ProjectCacheWorker time
from 8+ minutes to 16 seconds.
Closes#2016
Fix label read access for unauthenticated users
The label page was added to navigation for unauthorized users because
the previously used milestone read permission was still checked. This
has been fixed and read access to labels is now granted (again) for
public projects.
This regression has been introduced in
07efb17e10 (7.12).
See also 9bcd36396b.
Refs !836, !842.
See merge request !1000
The label page was added to navigation for unauthorized users because
the previously used milestone read permission was still checked. This
has been fixed and read access to labels is now granted (again) for
public projects.
This regression has been introduced in
07efb17e10 (7.12).
See also 9bcd36396b.
Refs !836, !842.
Fix bug where notes were being rendered with wrong color preferences due to caching
### What does this MR do?
This MR adds the user's color preferences as part of the caching key for notes.
### Why was this MR needed?
This should fix a bug introduced via 4d80360b where notes were being loaded from the cache without regard to the current user's color scheme.
### What are the relevant issue numbers?
Closes#2008
See merge request !994