From a55becaad152743f6d0b2233a02be7abe36ad15a Mon Sep 17 00:00:00 2001 From: Marcin Kuzminski Date: Wed, 29 Aug 2018 14:06:51 +0200 Subject: [PATCH] ssh: improve logging, and make the UI show last accessed date for key. --- rhodecode/apps/ssh_support/lib/backends/__init__.py | 3 ++- rhodecode/apps/ssh_support/lib/backends/base.py | 9 +++++++-- .../templates/admin/my_account/my_account_ssh_keys.mako | 4 +++- rhodecode/templates/admin/users/user_edit_ssh_keys.mako | 4 +++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/rhodecode/apps/ssh_support/lib/backends/__init__.py b/rhodecode/apps/ssh_support/lib/backends/__init__.py index f61d684f..56e84c64 100644 --- a/rhodecode/apps/ssh_support/lib/backends/__init__.py +++ b/rhodecode/apps/ssh_support/lib/backends/__init__.py @@ -62,7 +62,8 @@ class SshWrapper(object): key.accessed_on = datetime.datetime.utcnow() Session().add(key) Session().commit() - log.debug('Update key `%s` access time', key_id) + log.debug('Update key id:`%s` fingerprint:`%s` access time', + key_id, key.ssh_key_fingerprint) def get_connection_info(self): """ diff --git a/rhodecode/apps/ssh_support/lib/backends/base.py b/rhodecode/apps/ssh_support/lib/backends/base.py index 081c1ccf..cdc096f9 100644 --- a/rhodecode/apps/ssh_support/lib/backends/base.py +++ b/rhodecode/apps/ssh_support/lib/backends/base.py @@ -70,6 +70,11 @@ class VcsServer(object): 'permission for %s on %s are: %s', self.user, self.repo_name, permission) + if not permission: + log.error('user `%s` permissions to repo:%s are empty. Forbidding access.', + self.user, self.repo_name) + return -2 + if action == 'pull': if permission in self.read_perms: log.info( @@ -83,8 +88,8 @@ class VcsServer(object): self.user, self.repo_name) return 0 - log.error('Cannot properly fetch or allow user %s permissions. ' - 'Return value is: %s, req action: %s', + log.error('Cannot properly fetch or verify user `%s` permissions. ' + 'Permissions: %s, vcs action: %s', self.user, permission, action) return -2 diff --git a/rhodecode/templates/admin/my_account/my_account_ssh_keys.mako b/rhodecode/templates/admin/my_account/my_account_ssh_keys.mako index e1c21c21..2d5e9828 100644 --- a/rhodecode/templates/admin/my_account/my_account_ssh_keys.mako +++ b/rhodecode/templates/admin/my_account/my_account_ssh_keys.mako @@ -8,7 +8,8 @@ ${_('Fingerprint')} ${_('Description')} - ${_('Created')} + ${_('Created on')} + ${_('Accessed on')} ${_('Action')} % if not c.ssh_enabled: @@ -22,6 +23,7 @@ ${ssh_key.description} ${h.format_date(ssh_key.created_on)} + ${h.format_date(ssh_key.accessed_on)} ${h.secure_form(h.route_path('my_account_ssh_keys_delete'), request=request)} diff --git a/rhodecode/templates/admin/users/user_edit_ssh_keys.mako b/rhodecode/templates/admin/users/user_edit_ssh_keys.mako index 1aad5113..b6fb1009 100644 --- a/rhodecode/templates/admin/users/user_edit_ssh_keys.mako +++ b/rhodecode/templates/admin/users/user_edit_ssh_keys.mako @@ -8,7 +8,8 @@ ${_('Fingerprint')} ${_('Description')} - ${_('Created')} + ${_('Created on')} + ${_('Accessed on')} ${_('Action')} %if c.user_ssh_keys: @@ -19,6 +20,7 @@ ${ssh_key.description} ${h.format_date(ssh_key.created_on)} + ${h.format_date(ssh_key.accessed_on)} ${h.secure_form(h.route_path('edit_user_ssh_keys_delete', user_id=c.user.user_id), request=request)}