From 127da865d61cba885af90bd158e88fe8c9a734c0 Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Thu, 6 Oct 2022 10:26:05 +0200 Subject: [PATCH 1/5] docs: added new admin trick to bulk change owner of repository --- docs/admin/system_admin/admin-tricks.rst | 36 ++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/admin/system_admin/admin-tricks.rst b/docs/admin/system_admin/admin-tricks.rst index 245d6c10..7c6bb986 100644 --- a/docs/admin/system_admin/admin-tricks.rst +++ b/docs/admin/system_admin/admin-tricks.rst @@ -262,3 +262,39 @@ ishell interface should be used. In [1]: repo = Repository.get_by_repo_name('SOME_REPO_NAME') In [2]: repo.archived = False In [3]: Session().add(repo);Session().commit() + + + + +Bulk change repository owner +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here's how one can change an owner of repository for an user who has been de activated. +Settings a new owner can be done via ishell for all repositories that past owner had. + +do run this script the interactive ishell interface should be used. + +.. code-block:: bash + + # Open iShell from the terminal + $ rccontrol ishell enterprise-1/community-1 + + +.. code-block:: python + + from rhodecode.model.db import User, Repository, Session + from rhodecode.model.permission import PermissionModel + + # replace old-owner and new-owner with your exact users + old_owner = User.get_by_username('old-owner') + new_owner = User.get_by_username('new-owner') + + # list of users we need to "flush" permissions + affected_user_ids = [new_owner.user_id, old_owner.user_id] + + for repo in Repository.get_all_repos(user_id=old_owner.user_id): + repo.user = new_owner + Session().add(repo) + Session().commit() + + PermissionModel().trigger_permission_flush(affected_user_ids) From 39e6e12be3675a214c48e65fb4a63e9fa1cdf6c0 Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Thu, 6 Oct 2022 10:26:43 +0200 Subject: [PATCH 2/5] caches: fixes the file-store backend to use serialized names for filename cache of vcsserver. Using ones with '/' would crash the backend --- rhodecode/lib/vcs/client_http.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rhodecode/lib/vcs/client_http.py b/rhodecode/lib/vcs/client_http.py index ac562347..f3d9cbd4 100644 --- a/rhodecode/lib/vcs/client_http.py +++ b/rhodecode/lib/vcs/client_http.py @@ -185,8 +185,9 @@ class RemoteRepo(object): self.url = remote_maker.url self.stream_url = remote_maker.stream_url self._session = remote_maker._session_factory() + cache_repo_id = self._repo_id_sanitizer(repo_id) self._cache_region, self._cache_namespace = \ - remote_maker.init_cache_region(self._repo_id_sanitizer(repo_id)) + remote_maker.init_cache_region(self._repo_id_sanitizer(cache_repo_id)) with_wire = with_wire or {} @@ -194,6 +195,7 @@ class RemoteRepo(object): self._wire = { "path": path, # repo path "repo_id": repo_id, + "cache_repo_id": cache_repo_id, "config": config, "repo_state_uid": repo_state_uid, "context": self._create_vcs_cache_context(path, repo_state_uid) From 94c141d6a4ff045b327ffeb7c64bebc0fe931e3e Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Mon, 10 Oct 2022 12:30:07 +0200 Subject: [PATCH 3/5] caches: fix id sanitizer. --- rhodecode/lib/vcs/client_http.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rhodecode/lib/vcs/client_http.py b/rhodecode/lib/vcs/client_http.py index f3d9cbd4..5c7da2e3 100644 --- a/rhodecode/lib/vcs/client_http.py +++ b/rhodecode/lib/vcs/client_http.py @@ -185,9 +185,10 @@ class RemoteRepo(object): self.url = remote_maker.url self.stream_url = remote_maker.stream_url self._session = remote_maker._session_factory() + cache_repo_id = self._repo_id_sanitizer(repo_id) self._cache_region, self._cache_namespace = \ - remote_maker.init_cache_region(self._repo_id_sanitizer(cache_repo_id)) + remote_maker.init_cache_region(cache_repo_id) with_wire = with_wire or {} @@ -212,7 +213,7 @@ class RemoteRepo(object): self.cert_dir = get_cert_path(rhodecode.CONFIG.get('__file__')) def _repo_id_sanitizer(self, repo_id): - return repo_id.replace('/', '__') + return repo_id.replace('/', '__').replace('-', '_') def __getattr__(self, name): From 53b22efa8da4ca4e2aebc820f3dec92c82f9f952 Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Wed, 12 Oct 2022 16:03:05 +0200 Subject: [PATCH 4/5] pkgs: bumped nix version --- pkgs/python-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/python-packages.nix b/pkgs/python-packages.nix index 6556e7b0..e3d6976f 100644 --- a/pkgs/python-packages.nix +++ b/pkgs/python-packages.nix @@ -1883,7 +1883,7 @@ self: super: { }; }; "rhodecode-enterprise-ce" = super.buildPythonPackage { - name = "rhodecode-enterprise-ce-4.27.0"; + name = "rhodecode-enterprise-ce-4.27.1"; buildInputs = [ self."pytest" self."py" From ea8499bf8bdeeaa8d761c33cdfffe5987f8b3302 Mon Sep 17 00:00:00 2001 From: RhodeCode Admin Date: Wed, 12 Oct 2022 16:04:54 +0200 Subject: [PATCH 5/5] docs: added 4.27.1 docs --- docs/release-notes/release-notes-4.27.1.rst | 40 +++++++++++++++++++++ docs/release-notes/release-notes.rst | 1 + 2 files changed, 41 insertions(+) create mode 100644 docs/release-notes/release-notes-4.27.1.rst diff --git a/docs/release-notes/release-notes-4.27.1.rst b/docs/release-notes/release-notes-4.27.1.rst new file mode 100644 index 00000000..9983d04f --- /dev/null +++ b/docs/release-notes/release-notes-4.27.1.rst @@ -0,0 +1,40 @@ +|RCE| 4.27.1 |RNS| +------------------ + +Release Date +^^^^^^^^^^^^ + +- 2022-10-12 + + +New Features +^^^^^^^^^^^^ + + + +General +^^^^^^^ + + + +Security +^^^^^^^^ + + + +Performance +^^^^^^^^^^^ + + + +Fixes +^^^^^ + +- VCSServer: fixes the file-store backend to use serialized names for filename cache of vcsserver. + + + +Upgrade notes +^^^^^^^^^^^^^ + +- Un-scheduled release 4.27.1 addressing some new cache backed problems. diff --git a/docs/release-notes/release-notes.rst b/docs/release-notes/release-notes.rst index d9b79ead..7474efcf 100644 --- a/docs/release-notes/release-notes.rst +++ b/docs/release-notes/release-notes.rst @@ -9,6 +9,7 @@ Release Notes .. toctree:: :maxdepth: 1 + release-notes-4.27.1.rst release-notes-4.27.0.rst release-notes-4.26.0.rst release-notes-4.25.2.rst