# HG changeset patch # User Marcin Kuzminski # Date 2019-07-12 17:48:03 # Node ID 957c23426fcc4cce69c3998c0707e20a44b7e96c # Parent 8bd675988548fe5f8d90ccf3335fcc5137a9374f # Parent 8aa49fab169f3338e85bc209a67e2a4b418b8ffc release: merge back stable branch into default diff --git a/.hgignore b/.hgignore --- a/.hgignore +++ b/.hgignore @@ -41,6 +41,7 @@ syntax: regexp ^result$ ^rhodecode/public/css/style.css$ ^rhodecode/public/css/style-polymer.css$ +^rhodecode/public/css/style-ipython.css$ ^rhodecode/public/js/rhodecode-components.html$ ^rhodecode/public/js/rhodecode-components.js$ ^rhodecode/public/js/scripts.js$ diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -52,3 +52,6 @@ 4aaa40b605b01af78a9f6882eca561c54b525ef0 797744642eca86640ed20bef2cd77445780abaec v4.16.0 6c3452c7c25ed35ff269690929e11960ed6ad7d3 v4.16.1 5d8057df561c4b6b81b6401aed7d2f911e6e77f7 v4.16.2 +13acfc008896ef4c62546bab5074e8f6f89b4fa7 v4.17.0 +45b9b610976f483877142fe75321808ce9ebac59 v4.17.1 +ad5bd0c4bd322fdbd04bb825a3d027e08f7a3901 v4.17.2 diff --git a/docs/release-notes/release-notes-4.17.1.rst b/docs/release-notes/release-notes-4.17.1.rst new file mode 100644 --- /dev/null +++ b/docs/release-notes/release-notes-4.17.1.rst @@ -0,0 +1,41 @@ +|RCE| 4.17.1 |RNS| +------------------ + +Release Date +^^^^^^^^^^^^ + +- 2019-07-04 + + +New Features +^^^^^^^^^^^^ + + + +General +^^^^^^^ + + + +Security +^^^^^^^^ + + + +Performance +^^^^^^^^^^^ + + + +Fixes +^^^^^ + +- Database: fixed mysql migration issues. +- Artifacts: fixed problem with non-ascii file uploads. +- Artifacts: increase timeout, and allow setting custom time via ?timeout=N GET flag + + +Upgrade notes +^^^^^^^^^^^^^ + +- Un-scheduled release addressing problems in 4.17.X releases. diff --git a/docs/release-notes/release-notes-4.17.2.rst b/docs/release-notes/release-notes-4.17.2.rst new file mode 100644 --- /dev/null +++ b/docs/release-notes/release-notes-4.17.2.rst @@ -0,0 +1,40 @@ +|RCE| 4.17.2 |RNS| +------------------ + +Release Date +^^^^^^^^^^^^ + +- 2019-07-05 + + +New Features +^^^^^^^^^^^^ + + + +General +^^^^^^^ + + + +Security +^^^^^^^^ + + + +Performance +^^^^^^^^^^^ + + + +Fixes +^^^^^ + +- UI: fixed missing icons on some cases. +- Commits: hide links icon of message that don't expand. + + +Upgrade notes +^^^^^^^^^^^^^ + +- Un-scheduled release addressing problems in 4.17.X releases. diff --git a/docs/release-notes/release-notes.rst b/docs/release-notes/release-notes.rst --- a/docs/release-notes/release-notes.rst +++ b/docs/release-notes/release-notes.rst @@ -9,6 +9,8 @@ Release Notes .. toctree:: :maxdepth: 1 + release-notes-4.17.2.rst + release-notes-4.17.1.rst release-notes-4.17.0.rst release-notes-4.16.2.rst release-notes-4.16.1.rst diff --git a/pkgs/python-packages.nix b/pkgs/python-packages.nix --- a/pkgs/python-packages.nix +++ b/pkgs/python-packages.nix @@ -1718,7 +1718,7 @@ self: super: { }; }; "rhodecode-enterprise-ce" = super.buildPythonPackage { - name = "rhodecode-enterprise-ce-4.17.0"; + name = "rhodecode-enterprise-ce-4.17.2"; buildInputs = [ self."pytest" self."py" diff --git a/rhodecode/apps/repository/__init__.py b/rhodecode/apps/repository/__init__.py --- a/rhodecode/apps/repository/__init__.py +++ b/rhodecode/apps/repository/__init__.py @@ -369,6 +369,10 @@ def includeme(config): name='edit_repo_perms', pattern='/{repo_name:.*?[^/]}/settings/permissions', repo_route=True) + config.add_route( + name='edit_repo_perms_set_private', + pattern='/{repo_name:.*?[^/]}/settings/permissions/set_private', repo_route=True) + # Permissions Branch (EE feature) config.add_route( name='edit_repo_perms_branch', @@ -481,13 +485,21 @@ def includeme(config): name='edit_repo_audit_logs', pattern='/{repo_name:.*?[^/]}/settings/audit_logs', repo_route=True) - # ATOM/RSS Feed + # ATOM/RSS Feed, shouldn't contain slashes for outlook compatibility config.add_route( name='rss_feed_home', + pattern='/{repo_name:.*?[^/]}/feed-rss', repo_route=True) + + config.add_route( + name='atom_feed_home', + pattern='/{repo_name:.*?[^/]}/feed-atom', repo_route=True) + + config.add_route( + name='rss_feed_home_old', pattern='/{repo_name:.*?[^/]}/feed/rss', repo_route=True) config.add_route( - name='atom_feed_home', + name='atom_feed_home_old', pattern='/{repo_name:.*?[^/]}/feed/atom', repo_route=True) # NOTE(marcink): needs to be at the end for catch-all diff --git a/rhodecode/apps/repository/tests/test_repo_feed.py b/rhodecode/apps/repository/tests/test_repo_feed.py --- a/rhodecode/apps/repository/tests/test_repo_feed.py +++ b/rhodecode/apps/repository/tests/test_repo_feed.py @@ -27,8 +27,10 @@ def route_path(name, params=None, **kwar import urllib base_url = { - 'rss_feed_home': '/{repo_name}/feed/rss', - 'atom_feed_home': '/{repo_name}/feed/atom', + 'rss_feed_home': '/{repo_name}/feed-rss', + 'atom_feed_home': '/{repo_name}/feed-atom', + 'rss_feed_home_old': '/{repo_name}/feed/rss', + 'atom_feed_home_old': '/{repo_name}/feed/atom', }[name].format(**kwargs) if params: @@ -73,6 +75,42 @@ class TestFeedView(TestController): assert response.content_type == content_type + @pytest.mark.parametrize("feed_type, content_type", [ + ('rss', "application/rss+xml"), + ('atom', "application/atom+xml") + ]) + def test_feed_with_auth_token_by_uid( + self, backend, user_admin, feed_type, content_type): + auth_token = user_admin.feed_token + assert auth_token != '' + + response = self.app.get( + route_path( + '{}_feed_home'.format(feed_type), + repo_name='_{}'.format(backend.repo.repo_id), + params=dict(auth_token=auth_token)), + status=200) + + assert response.content_type == content_type + + @pytest.mark.parametrize("feed_type, content_type", [ + ('rss', "application/rss+xml"), + ('atom', "application/atom+xml") + ]) + def test_feed_old_urls_with_auth_token( + self, backend, user_admin, feed_type, content_type): + auth_token = user_admin.feed_token + assert auth_token != '' + + response = self.app.get( + route_path( + '{}_feed_home_old'.format(feed_type), + repo_name=backend.repo_name, + params=dict(auth_token=auth_token)), + status=200) + + assert response.content_type == content_type + @pytest.mark.parametrize("feed_type", ['rss', 'atom']) def test_feed_with_auth_token_of_wrong_type( self, backend, user_util, feed_type): diff --git a/rhodecode/apps/repository/views/repo_feed.py b/rhodecode/apps/repository/views/repo_feed.py --- a/rhodecode/apps/repository/views/repo_feed.py +++ b/rhodecode/apps/repository/views/repo_feed.py @@ -40,8 +40,6 @@ log = logging.getLogger(__name__) class RepoFeedView(RepoAppView): def load_default_context(self): c = self._get_local_tmpl_context() - - self._load_defaults() return c @@ -117,6 +115,9 @@ class RepoFeedView(RepoAppView): @view_config( route_name='atom_feed_home', request_method='GET', renderer=None) + @view_config( + route_name='atom_feed_home_old', request_method='GET', + renderer=None) def atom(self): """ Produce an atom-1.0 feed via feedgenerator module @@ -181,6 +182,9 @@ class RepoFeedView(RepoAppView): @view_config( route_name='rss_feed_home', request_method='GET', renderer=None) + @view_config( + route_name='rss_feed_home_old', request_method='GET', + renderer=None) def rss(self): """ Produce an rss2 feed via feedgenerator module diff --git a/rhodecode/apps/repository/views/repo_permissions.py b/rhodecode/apps/repository/views/repo_permissions.py --- a/rhodecode/apps/repository/views/repo_permissions.py +++ b/rhodecode/apps/repository/views/repo_permissions.py @@ -105,3 +105,30 @@ class RepoSettingsPermissionsView(RepoAp raise HTTPFound( h.route_path('edit_repo_perms', repo_name=self.db_repo_name)) + + @LoginRequired() + @HasRepoPermissionAnyDecorator('repository.admin') + @CSRFRequired() + @view_config( + route_name='edit_repo_perms_set_private', request_method='POST', + renderer='json_ext') + def edit_permissions_set_private_repo(self): + _ = self.request.translate + self.load_default_context() + + try: + RepoModel().update( + self.db_repo, **{'repo_private': True, 'repo_name': self.db_repo_name}) + Session().commit() + + h.flash(_('Repository `{}` private mode set successfully').format(self.db_repo_name), + category='success') + except Exception: + log.exception("Exception during update of repository") + h.flash(_('Error occurred during update of repository {}').format( + self.db_repo_name), category='error') + + return { + 'redirect_url': h.route_path('edit_repo_perms', repo_name=self.db_repo_name), + 'private': True + } diff --git a/rhodecode/i18n/rhodecode.pot b/rhodecode/i18n/rhodecode.pot --- a/rhodecode/i18n/rhodecode.pot +++ b/rhodecode/i18n/rhodecode.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: rhodecode-enterprise-ce 4.16.0\n" +"Project-Id-Version: rhodecode-enterprise-ce 4.17.0\n" "Report-Msgid-Bugs-To: marcin@rhodecode.com\n" -"POT-Creation-Date: 2019-02-23 21:51+0000\n" +"POT-Creation-Date: 2019-07-03 14:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,11 +25,11 @@ msgstr "" msgid "Error occurred during update of default values" msgstr "" -#: rhodecode/apps/admin/views/exception_tracker.py:142 +#: rhodecode/apps/admin/views/exception_tracker.py:156 msgid "Removed {} Exceptions" msgstr "" -#: rhodecode/apps/admin/views/exception_tracker.py:159 +#: rhodecode/apps/admin/views/exception_tracker.py:173 msgid "Removed Exception {}" msgstr "" @@ -53,7 +53,7 @@ msgstr "" #: rhodecode/apps/admin/views/permissions.py:484 #: rhodecode/templates/admin/gists/show.mako:63 -#: rhodecode/templates/admin/integrations/list.mako:174 +#: rhodecode/templates/admin/integrations/list.mako:172 #: rhodecode/templates/admin/my_account/my_account_profile.mako:5 #: rhodecode/templates/base/issue_tracker_settings.mako:60 #: rhodecode/templates/data_table/_dt_elements.mako:167 @@ -62,12 +62,12 @@ msgstr "" #: rhodecode/templates/data_table/_dt_elements.mako:255 #: rhodecode/templates/data_table/_dt_elements.mako:267 #: rhodecode/templates/debug_style/buttons.html:128 -#: rhodecode/templates/files/files_add.mako:208 -#: rhodecode/templates/files/files_edit.mako:168 -#: rhodecode/templates/files/files_source.mako:58 -#: rhodecode/templates/files/files_source.mako:61 -#: rhodecode/templates/pullrequests/pullrequest_show.mako:64 -#: rhodecode/templates/pullrequests/pullrequest_show.mako:347 +#: rhodecode/templates/files/files_add.mako:57 +#: rhodecode/templates/files/files_edit.mako:58 +#: rhodecode/templates/files/files_source.mako:29 +#: rhodecode/templates/files/files_source.mako:42 +#: rhodecode/templates/pullrequests/pullrequest_show.mako:60 +#: rhodecode/templates/pullrequests/pullrequest_show.mako:343 #: rhodecode/templates/user_group/profile.mako:7 #: rhodecode/templates/users/user_profile.mako:7 msgid "Edit" @@ -81,12 +81,12 @@ msgstr "" msgid "SSH key support is disabled in .ini file" msgstr "" -#: rhodecode/apps/admin/views/repo_groups.py:183 +#: rhodecode/apps/admin/views/repo_groups.py:329 #, python-format msgid "Created repository group %s" msgstr "" -#: rhodecode/apps/admin/views/repo_groups.py:201 +#: rhodecode/apps/admin/views/repo_groups.py:347 #, python-format msgid "Error occurred during creation of repository group %s" msgstr "" @@ -345,12 +345,12 @@ msgstr "" msgid "SVN" msgstr "" -#: rhodecode/apps/admin/views/user_groups.py:231 +#: rhodecode/apps/admin/views/user_groups.py:243 #, python-format msgid "Created user group %(user_group_link)s" msgstr "" -#: rhodecode/apps/admin/views/user_groups.py:253 +#: rhodecode/apps/admin/views/user_groups.py:265 #, python-format msgid "Error occurred during creation of user group %s" msgstr "" @@ -446,99 +446,99 @@ msgstr "" msgid "Force password change disabled for user" msgstr "" -#: rhodecode/apps/admin/views/users.py:696 +#: rhodecode/apps/admin/views/users.py:695 #, python-format msgid "Linked repository group `%s` as personal" msgstr "" -#: rhodecode/apps/admin/views/users.py:702 +#: rhodecode/apps/admin/views/users.py:701 #, python-format msgid "Created repository group `%s`" msgstr "" -#: rhodecode/apps/admin/views/users.py:706 +#: rhodecode/apps/admin/views/users.py:705 #, python-format msgid "Repository group `%s` is already taken" msgstr "" -#: rhodecode/apps/admin/views/users.py:711 +#: rhodecode/apps/admin/views/users.py:710 msgid "An error occurred during repository group creation for user" msgstr "" -#: rhodecode/apps/admin/views/users.py:734 +#: rhodecode/apps/admin/views/users.py:733 #: rhodecode/apps/my_account/views/my_account.py:161 #: rhodecode/templates/admin/my_account/my_account_auth_tokens.mako:16 #: rhodecode/templates/admin/users/user_edit_auth_tokens.mako:16 msgid "Role" msgstr "" -#: rhodecode/apps/admin/views/users.py:773 +#: rhodecode/apps/admin/views/users.py:772 #: rhodecode/apps/my_account/views/my_account.py:196 msgid "Auth token successfully created" msgstr "" -#: rhodecode/apps/admin/views/users.py:802 +#: rhodecode/apps/admin/views/users.py:801 #: rhodecode/apps/my_account/views/my_account.py:220 msgid "Auth token successfully deleted" msgstr "" -#: rhodecode/apps/admin/views/users.py:875 +#: rhodecode/apps/admin/views/users.py:874 #: rhodecode/apps/my_account/views/my_account_ssh_keys.py:114 msgid "Ssh Key successfully created" msgstr "" -#: rhodecode/apps/admin/views/users.py:881 -#: rhodecode/apps/admin/views/users.py:885 +#: rhodecode/apps/admin/views/users.py:880 +#: rhodecode/apps/admin/views/users.py:884 #: rhodecode/apps/my_account/views/my_account_ssh_keys.py:120 #: rhodecode/apps/my_account/views/my_account_ssh_keys.py:124 msgid "An error occurred during ssh key saving: {}" msgstr "" -#: rhodecode/apps/admin/views/users.py:919 +#: rhodecode/apps/admin/views/users.py:918 #: rhodecode/apps/my_account/views/my_account_ssh_keys.py:154 msgid "Ssh key successfully deleted" msgstr "" -#: rhodecode/apps/admin/views/users.py:965 +#: rhodecode/apps/admin/views/users.py:964 #, python-format msgid "Added new email address `%s` for user account" msgstr "" -#: rhodecode/apps/admin/views/users.py:971 +#: rhodecode/apps/admin/views/users.py:970 msgid "Email `{}` is already registered for another user." msgstr "" -#: rhodecode/apps/admin/views/users.py:975 +#: rhodecode/apps/admin/views/users.py:974 msgid "An error occurred during email saving" msgstr "" -#: rhodecode/apps/admin/views/users.py:1002 +#: rhodecode/apps/admin/views/users.py:1001 msgid "Removed email address from user account" msgstr "" -#: rhodecode/apps/admin/views/users.py:1048 +#: rhodecode/apps/admin/views/users.py:1047 #, python-format msgid "An error occurred during ip saving:%s" msgstr "" -#: rhodecode/apps/admin/views/users.py:1070 +#: rhodecode/apps/admin/views/users.py:1069 msgid "An error occurred during ip saving" msgstr "" -#: rhodecode/apps/admin/views/users.py:1074 +#: rhodecode/apps/admin/views/users.py:1073 #, python-format msgid "Added ips %s to user whitelist" msgstr "" -#: rhodecode/apps/admin/views/users.py:1104 +#: rhodecode/apps/admin/views/users.py:1103 msgid "Removed ip address from user whitelist" msgstr "" -#: rhodecode/apps/admin/views/users.py:1169 +#: rhodecode/apps/admin/views/users.py:1168 msgid "Groups successfully changed" msgstr "" -#: rhodecode/apps/admin/views/users.py:1263 +#: rhodecode/apps/admin/views/users.py:1262 msgid "Deleted {} cache keys" msgstr "" @@ -562,9 +562,9 @@ msgstr "" msgid "1 month" msgstr "" -#: rhodecode/apps/gist/views.py:64 rhodecode/public/js/scripts.js:40932 +#: rhodecode/apps/gist/views.py:64 rhodecode/public/js/scripts.js:44668 #: rhodecode/public/js/rhodecode/i18n/js_translations.js:25 -#: rhodecode/public/js/src/rhodecode.js:509 +#: rhodecode/public/js/src/rhodecode.js:502 msgid "Lifetime" msgstr "" @@ -576,16 +576,16 @@ msgstr "" msgid "Can be accessed by anonymous users" msgstr "" -#: rhodecode/apps/gist/views.py:214 +#: rhodecode/apps/gist/views.py:213 msgid "Error occurred during gist creation" msgstr "" -#: rhodecode/apps/gist/views.py:238 +#: rhodecode/apps/gist/views.py:237 #, python-format msgid "Deleted gist %s" msgstr "" -#: rhodecode/apps/gist/views.py:324 +#: rhodecode/apps/gist/views.py:325 #: rhodecode/templates/admin/gists/show.mako:74 #: rhodecode/templates/admin/my_account/my_account_auth_tokens.mako:36 #: rhodecode/templates/admin/users/user_edit_auth_tokens.mako:36 @@ -593,41 +593,42 @@ msgstr "" msgid "never" msgstr "" -#: rhodecode/apps/gist/views.py:330 +#: rhodecode/apps/gist/views.py:331 #, python-format msgid "%(expiry)s - current value" msgstr "" -#: rhodecode/apps/gist/views.py:375 +#: rhodecode/apps/gist/views.py:376 msgid "Successfully updated gist content" msgstr "" -#: rhodecode/apps/gist/views.py:380 +#: rhodecode/apps/gist/views.py:381 msgid "Successfully updated gist data" msgstr "" -#: rhodecode/apps/gist/views.py:383 +#: rhodecode/apps/gist/views.py:384 msgid "Error occurred during update of gist {}: {}" msgstr "" -#: rhodecode/apps/gist/views.py:387 +#: rhodecode/apps/gist/views.py:388 #, python-format msgid "Error occurred during update of gist %s" msgstr "" -#: rhodecode/apps/home/views.py:308 +#: rhodecode/apps/home/views.py:388 #: rhodecode/apps/repository/views/repo_pull_requests.py:878 #: rhodecode/templates/admin/my_account/my_account.mako:42 #: rhodecode/templates/admin/repo_groups/repo_group_edit_permissions.mako:198 #: rhodecode/templates/admin/repos/repo_add.mako:15 #: rhodecode/templates/admin/repos/repo_add.mako:19 #: rhodecode/templates/admin/users/user_edit_advanced.mako:12 -#: rhodecode/templates/base/base.mako:78 rhodecode/templates/base/base.mako:150 -#: rhodecode/templates/base/base.mako:785 +#: rhodecode/templates/base/base.mako:103 +#: rhodecode/templates/base/base.mako:122 +#: rhodecode/templates/base/base.mako:944 msgid "Repositories" msgstr "" -#: rhodecode/apps/home/views.py:335 +#: rhodecode/apps/home/views.py:415 #: rhodecode/templates/admin/integrations/form.mako:17 #: rhodecode/templates/admin/integrations/list.mako:10 #: rhodecode/templates/admin/permissions/permissions_objects.mako:31 @@ -695,11 +696,11 @@ msgstr "" msgid "Failed to update bookmarks. Make sure an unique position is used" msgstr "" -#: rhodecode/apps/my_account/views/my_account.py:626 +#: rhodecode/apps/my_account/views/my_account.py:629 msgid "Your account was updated successfully" msgstr "" -#: rhodecode/apps/my_account/views/my_account.py:633 +#: rhodecode/apps/my_account/views/my_account.py:636 msgid "Error occurred during update of user" msgstr "" @@ -746,9 +747,8 @@ msgid "There are no commits yet" msgstr "" #: rhodecode/apps/repository/views/repo_changelog.py:71 -#: rhodecode/apps/repository/views/repo_commits.py:111 -#: rhodecode/apps/repository/views/repo_files.py:165 #: rhodecode/apps/repository/views/repo_files.py:185 +#: rhodecode/apps/repository/views/repo_files.py:205 msgid "No such commit exists for this repository" msgstr "" @@ -767,13 +767,17 @@ msgstr "" msgid "Created repository %s" msgstr "" -#: rhodecode/apps/repository/views/repo_commits.py:327 +#: rhodecode/apps/repository/views/repo_commits.py:110 +msgid "No such commit exists. Org exception: `{}`" +msgstr "" + +#: rhodecode/apps/repository/views/repo_commits.py:326 #: rhodecode/apps/repository/views/repo_pull_requests.py:1347 #, python-format msgid "Status change %(transition_icon)s %(status)s" msgstr "" -#: rhodecode/apps/repository/views/repo_commits.py:372 +#: rhodecode/apps/repository/views/repo_commits.py:371 msgid "Changing the status of a commit associated with a closed pull request is not allowed" msgstr "" @@ -793,11 +797,11 @@ msgstr "" msgid "The comparison of two different kinds of remote repos is not available" msgstr "" -#: rhodecode/apps/repository/views/repo_compare.py:231 +#: rhodecode/apps/repository/views/repo_compare.py:225 msgid "Could not compare repos with different large file settings" msgstr "" -#: rhodecode/apps/repository/views/repo_compare.py:277 +#: rhodecode/apps/repository/views/repo_compare.py:271 #, python-format msgid "Repositories unrelated. Cannot compare commit %(commit1)s from repository %(repo1)s with commit %(commit2)s from repository %(repo2)s." msgstr "" @@ -812,122 +816,130 @@ msgstr "" msgid "%s %s feed" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:95 +#: rhodecode/apps/repository/views/repo_files.py:96 #, python-format msgid "This repository has been locked by %s on %s" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:111 +#: rhodecode/apps/repository/views/repo_files.py:109 +msgid "Cannot modify file. Given commit `{}` is not head of a branch." +msgstr "" + +#: rhodecode/apps/repository/views/repo_files.py:127 msgid "Branch `{}` changes forbidden by rule {}." msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:155 +#: rhodecode/apps/repository/views/repo_files.py:175 msgid "Click here to add a new file." msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:160 +#: rhodecode/apps/repository/views/repo_files.py:180 #, python-format msgid "There are no files yet. %s" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:297 +#: rhodecode/apps/repository/views/repo_files.py:325 msgid "Downloads disabled" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:303 +#: rhodecode/apps/repository/views/repo_files.py:331 msgid "Unknown archive type for: `{}`" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:309 +#: rhodecode/apps/repository/views/repo_files.py:337 msgid "Unknown commit_id {}" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:312 +#: rhodecode/apps/repository/views/repo_files.py:340 msgid "Empty repository" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:344 +#: rhodecode/apps/repository/views/repo_files.py:345 +msgid "No node at path {} for this repository" +msgstr "" + +#: rhodecode/apps/repository/views/repo_files.py:394 msgid "Unknown archive type" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:915 +#: rhodecode/apps/repository/views/repo_files.py:963 msgid "Changesets" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:936 -#: rhodecode/apps/repository/views/repo_summary.py:341 -#: rhodecode/model/pull_request.py:1431 rhodecode/model/scm.py:916 +#: rhodecode/apps/repository/views/repo_files.py:984 +#: rhodecode/apps/repository/views/repo_summary.py:346 +#: rhodecode/model/pull_request.py:1456 rhodecode/model/scm.py:918 #: rhodecode/templates/base/vcs_settings.mako:235 +#: rhodecode/templates/summary/components.mako:10 msgid "Branches" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:940 rhodecode/model/scm.py:931 +#: rhodecode/apps/repository/views/repo_files.py:988 rhodecode/model/scm.py:933 #: rhodecode/templates/base/vcs_settings.mako:260 +#: rhodecode/templates/summary/components.mako:34 msgid "Tags" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1039 -#: rhodecode/apps/repository/views/repo_files.py:1073 -msgid "You can only delete files with commit being a valid branch head." -msgstr "" - -#: rhodecode/apps/repository/views/repo_files.py:1050 -#: rhodecode/apps/repository/views/repo_files.py:1084 +#: rhodecode/apps/repository/views/repo_files.py:1092 +#: rhodecode/apps/repository/views/repo_files.py:1120 msgid "Deleted file {} via RhodeCode Enterprise" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1105 +#: rhodecode/apps/repository/views/repo_files.py:1141 msgid "Successfully deleted file `{}`" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1109 -#: rhodecode/apps/repository/views/repo_files.py:1235 +#: rhodecode/apps/repository/views/repo_files.py:1145 +#: rhodecode/apps/repository/views/repo_files.py:1262 #: rhodecode/apps/repository/views/repo_files.py:1393 +#: rhodecode/apps/repository/views/repo_files.py:1516 msgid "Error occurred during commit" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1129 -#: rhodecode/apps/repository/views/repo_files.py:1169 -msgid "You can only edit files with commit being a valid branch head." -msgstr "" - -#: rhodecode/apps/repository/views/repo_files.py:1147 -#: rhodecode/apps/repository/views/repo_files.py:1188 +#: rhodecode/apps/repository/views/repo_files.py:1177 +#: rhodecode/apps/repository/views/repo_files.py:1208 msgid "Edited file {} via RhodeCode Enterprise" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1206 -msgid "No changes" -msgstr "" - #: rhodecode/apps/repository/views/repo_files.py:1231 -msgid "Successfully committed changes to file `{}`" +msgid "No changes detected on {}" msgstr "" #: rhodecode/apps/repository/views/repo_files.py:1255 -#: rhodecode/apps/repository/views/repo_files.py:1318 +msgid "Successfully committed changes to file `{}`" +msgstr "" + +#: rhodecode/apps/repository/views/repo_files.py:1296 +#: rhodecode/apps/repository/views/repo_files.py:1337 msgid "Added file via RhodeCode Enterprise" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1268 -#: rhodecode/apps/repository/views/repo_files.py:1309 -msgid "You can only add files with commit being a valid branch head." -msgstr "" - -#: rhodecode/apps/repository/views/repo_files.py:1351 -msgid "No filename" -msgstr "" - -#: rhodecode/apps/repository/views/repo_files.py:1381 +#: rhodecode/apps/repository/views/repo_files.py:1353 +msgid "No filename specified" +msgstr "" + +#: rhodecode/apps/repository/views/repo_files.py:1378 msgid "Successfully committed new file `{}`" msgstr "" -#: rhodecode/apps/repository/views/repo_files.py:1385 +#: rhodecode/apps/repository/views/repo_files.py:1386 +#: rhodecode/apps/repository/views/repo_files.py:1498 msgid "The location specified must be a relative path and must not contain .. in the path" msgstr "" +#: rhodecode/apps/repository/views/repo_files.py:1443 +msgid "Uploaded file via RhodeCode Enterprise" +msgstr "" + +#: rhodecode/apps/repository/views/repo_files.py:1487 +msgid "Successfully committed {} new files" +msgstr "" + +#: rhodecode/apps/repository/views/repo_files.py:1489 +msgid "Successfully committed 1 new file" +msgstr "" + #: rhodecode/apps/repository/views/repo_forks.py:147 -#: rhodecode/templates/base/base.mako:267 msgid "Compare fork" msgstr "" @@ -1035,7 +1047,7 @@ msgid "Repository has been %s" msgstr "" #: rhodecode/apps/repository/views/repo_settings.py:219 -#: rhodecode/apps/repository/views/repo_settings_advanced.py:296 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:290 msgid "An error occurred during unlocking" msgstr "" @@ -1043,78 +1055,78 @@ msgstr "" msgid "An error occurred during deletion of repository stats" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:105 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:99 #, python-format msgid "Archived repository `%s`" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:110 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:104 #, python-format msgid "An error occurred during archiving of `%s`" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:148 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:142 #, python-format msgid "Detached %s forks" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:150 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:144 #, python-format msgid "Deleted %s forks" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:159 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:153 #, python-format msgid "Deleted repository `%s`" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:166 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:160 msgid "detach or delete" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:167 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:161 msgid "Cannot delete `{repo}` it still contains attached forks. Try using {delete_or_detach} option." msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:182 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:176 msgid "Cannot delete `{repo}` it still contains {num} attached pull requests. Consider archiving the repository instead." msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:191 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:185 #, python-format msgid "An error occurred during deletion of `%s`" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:216 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:210 msgid "Updated repository visibility in public journal" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:220 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:214 msgid "An error occurred during setting this repository in public journal" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:256 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:250 msgid "Nothing" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:259 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:253 #, python-format msgid "Marked repo %s as fork of %s" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:266 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:260 msgid "An error occurred during this operation" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:290 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:284 msgid "Locked repository" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:293 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:287 msgid "Unlocked repository" msgstr "" -#: rhodecode/apps/repository/views/repo_settings_advanced.py:313 +#: rhodecode/apps/repository/views/repo_settings_advanced.py:307 msgid "installed updated hooks into this repository" msgstr "" @@ -1142,21 +1154,23 @@ msgstr "" msgid "Error occurred during updating repository VCS settings" msgstr "" -#: rhodecode/apps/repository/views/repo_summary.py:316 +#: rhodecode/apps/repository/views/repo_summary.py:322 #: rhodecode/templates/admin/permissions/permissions.mako:42 -#: rhodecode/templates/files/files_add.mako:15 +#: rhodecode/templates/summary/components.mako:8 msgid "Branch" msgstr "" -#: rhodecode/apps/repository/views/repo_summary.py:317 +#: rhodecode/apps/repository/views/repo_summary.py:323 +#: rhodecode/templates/summary/components.mako:32 msgid "Tag" msgstr "" -#: rhodecode/apps/repository/views/repo_summary.py:318 +#: rhodecode/apps/repository/views/repo_summary.py:324 +#: rhodecode/templates/summary/components.mako:44 msgid "Bookmark" msgstr "" -#: rhodecode/apps/repository/views/repo_summary.py:342 +#: rhodecode/apps/repository/views/repo_summary.py:347 msgid "Closed branches" msgstr "" @@ -1207,7 +1221,6 @@ msgid "An error occurred during synchron msgstr "" #: rhodecode/authentication/routes.py:61 -#: rhodecode/templates/admin/auth/auth_settings.mako:14 #: rhodecode/templates/admin/auth/plugin_settings.mako:14 msgid "Authentication Plugins" msgstr "" @@ -1221,7 +1234,7 @@ msgstr "" #: rhodecode/model/permission.py:118 rhodecode/model/permission.py:122 #: rhodecode/model/permission.py:126 rhodecode/model/permission.py:130 #: rhodecode/model/validation_schema/schemas/integration_schema.py:195 -#: rhodecode/templates/admin/auth/auth_settings.mako:67 +#: rhodecode/templates/admin/auth/auth_settings.mako:64 #: rhodecode/templates/admin/integrations/list.mako:71 msgid "Enabled" msgstr "" @@ -1375,8 +1388,8 @@ msgid "Password to authenticate for give msgstr "" #: rhodecode/authentication/plugins/auth_ldap.py:283 -#: rhodecode/integrations/types/webhook.py:89 rhodecode/templates/login.mako:49 -#: rhodecode/templates/register.mako:60 +#: rhodecode/integrations/types/webhook.py:89 rhodecode/templates/login.mako:51 +#: rhodecode/templates/register.mako:62 #: rhodecode/templates/admin/my_account/my_account.mako:30 #: rhodecode/templates/admin/users/user_add.mako:44 #: rhodecode/templates/debug_style/login.html:45 @@ -1650,14 +1663,14 @@ msgstr "" #: rhodecode/templates/admin/users/user_edit_auth_tokens.mako:88 #: rhodecode/templates/admin/users/user_edit_emails.mako:63 #: rhodecode/templates/admin/users/user_edit_ips.mako:71 -#: rhodecode/templates/admin/users/user_edit_profile.mako:136 +#: rhodecode/templates/admin/users/user_edit_profile.mako:135 #: rhodecode/templates/admin/users/user_edit_ssh_keys.mako:67 #: rhodecode/templates/base/default_perms_box.mako:89 msgid "Reset" msgstr "" #: rhodecode/forms/__init__.py:36 rhodecode/templates/admin/gists/show.mako:54 -#: rhodecode/templates/admin/integrations/list.mako:181 +#: rhodecode/templates/admin/integrations/list.mako:179 #: rhodecode/templates/admin/my_account/my_account_auth_tokens.mako:50 #: rhodecode/templates/admin/my_account/my_account_emails.mako:32 #: rhodecode/templates/admin/my_account/my_account_ssh_keys.mako:33 @@ -1680,12 +1693,13 @@ msgstr "" #: rhodecode/templates/data_table/_dt_elements.mako:245 #: rhodecode/templates/data_table/_dt_elements.mako:259 #: rhodecode/templates/data_table/_dt_elements.mako:271 +#: rhodecode/templates/data_table/_dt_elements.mako:397 #: rhodecode/templates/debug_style/buttons.html:132 -#: rhodecode/templates/files/files_source.mako:55 -#: rhodecode/templates/files/files_source.mako:59 -#: rhodecode/templates/files/files_source.mako:62 +#: rhodecode/templates/files/files_source.mako:30 +#: rhodecode/templates/files/files_source.mako:37 +#: rhodecode/templates/files/files_source.mako:43 +#: rhodecode/templates/pullrequests/pullrequest_show.mako:53 #: rhodecode/templates/pullrequests/pullrequest_show.mako:57 -#: rhodecode/templates/pullrequests/pullrequest_show.mako:61 msgid "Delete" msgstr "" @@ -1720,32 +1734,32 @@ msgstr "" msgid "Root repositories only" msgstr "" -#: rhodecode/integrations/views.py:148 +#: rhodecode/integrations/views.py:147 msgid "{repo_name} repository" msgstr "" -#: rhodecode/integrations/views.py:151 +#: rhodecode/integrations/views.py:150 msgid "{repo_group_name} repo group" msgstr "" -#: rhodecode/integrations/views.py:154 +#: rhodecode/integrations/views.py:153 #: rhodecode/templates/admin/permissions/permissions.mako:36 msgid "Global" msgstr "" -#: rhodecode/integrations/views.py:158 +#: rhodecode/integrations/views.py:157 msgid "{name} integration" msgstr "" -#: rhodecode/integrations/views.py:173 +#: rhodecode/integrations/views.py:172 msgid "Integration {integration_name} deleted successfully." msgstr "" -#: rhodecode/integrations/views.py:302 +#: rhodecode/integrations/views.py:301 msgid "Errors exist when saving integration settings. Please check the form inputs." msgstr "" -#: rhodecode/integrations/views.py:327 +#: rhodecode/integrations/views.py:326 msgid "Integration {integration_name} updated successfully." msgstr "" @@ -1763,13 +1777,13 @@ msgid "Email address" msgstr "" #: rhodecode/integrations/types/email.py:174 -#: rhodecode/templates/register.mako:93 -#: rhodecode/templates/admin/my_account/my_account_profile.mako:48 +#: rhodecode/templates/register.mako:95 +#: rhodecode/templates/admin/my_account/my_account_profile.mako:55 #: rhodecode/templates/admin/users/user_add.mako:86 -#: rhodecode/templates/admin/users/user_edit_profile.mako:65 -#: rhodecode/templates/admin/users/users.mako:73 +#: rhodecode/templates/admin/users/user_edit_profile.mako:64 +#: rhodecode/templates/admin/users/users.mako:76 #: rhodecode/templates/email_templates/user_registration.mako:25 -#: rhodecode/templates/users/user_profile.mako:51 +#: rhodecode/templates/users/user_profile.mako:58 msgid "Email" msgstr "" @@ -1838,20 +1852,20 @@ msgid "This can be setup at the %if not c.rhodecode_user.is_admin: ${h.hidden('user_created',True)} diff --git a/rhodecode/templates/admin/repos/repo_edit_advanced.mako b/rhodecode/templates/admin/repos/repo_edit_advanced.mako --- a/rhodecode/templates/admin/repos/repo_edit_advanced.mako +++ b/rhodecode/templates/admin/repos/repo_edit_advanced.mako @@ -161,7 +161,7 @@
@@ -217,7 +217,7 @@
diff --git a/rhodecode/templates/admin/repos/repo_edit_permissions.mako b/rhodecode/templates/admin/repos/repo_edit_permissions.mako --- a/rhodecode/templates/admin/repos/repo_edit_permissions.mako +++ b/rhodecode/templates/admin/repos/repo_edit_permissions.mako @@ -105,6 +105,10 @@ member="${_user.user_id}" member_type="user"> ${_('Remove')} + %elif _user.username == h.DEFAULT_USER: + + ${_('set private mode')} + %endif @@ -199,4 +203,20 @@ markRevokePermInput($(this), 'repository'); }); quick_repo_menu(); + + var enablePrivateRepo = function () { + var postData = { + 'csrf_token': CSRF_TOKEN + }; + + var success = function(o) { + var defaultUrl = pyroutes.url('edit_repo_perms', {"repo_name": templateContext.repo_name}); + window.location = o.redirect_url || defaultUrl; + }; + + ajaxPOST( + pyroutes.url('edit_repo_perms_set_private', {"repo_name": templateContext.repo_name}), + postData, + success); + } diff --git a/rhodecode/templates/admin/repos/repo_edit_settings.mako b/rhodecode/templates/admin/repos/repo_edit_settings.mako --- a/rhodecode/templates/admin/repos/repo_edit_settings.mako +++ b/rhodecode/templates/admin/repos/repo_edit_settings.mako @@ -57,7 +57,7 @@ % if not c.form['repo_clone_uri'].error:
${c.rhodecode_db_repo.clone_uri_hidden} - ${_('edit')} + ${_('edit')}
% endif @@ -99,7 +99,7 @@ % if not c.form['repo_push_uri'].error:
${c.rhodecode_db_repo.push_uri_hidden} - ${_('edit')} + ${_('edit')}
% endif diff --git a/rhodecode/templates/admin/settings/settings_exceptions.mako b/rhodecode/templates/admin/settings/settings_exceptions.mako --- a/rhodecode/templates/admin/settings/settings_exceptions.mako +++ b/rhodecode/templates/admin/settings/settings_exceptions.mako @@ -27,7 +27,7 @@
diff --git a/rhodecode/templates/admin/settings/settings_exceptions_browse.mako b/rhodecode/templates/admin/settings/settings_exceptions_browse.mako --- a/rhodecode/templates/admin/settings/settings_exceptions_browse.mako +++ b/rhodecode/templates/admin/settings/settings_exceptions_browse.mako @@ -17,7 +17,7 @@