audit-logs: implemented full audit logs across application.
- Fixes #5321 - Api+web actions - To be extended while we develop new features.
This commit is contained in:
parent
a9ea42785b
commit
25436a7365
16 changed files with 141 additions and 79 deletions
|
|
@ -24,6 +24,7 @@ from rhodecode.api import jsonrpc_method, JSONRPCError, JSONRPCForbidden
|
|||
from rhodecode.api.utils import (
|
||||
Optional, OAttr, store_update, has_superadmin_permission, get_origin,
|
||||
get_user_or_error, get_user_group_or_error, get_perm_or_error)
|
||||
from rhodecode.lib import audit_logger
|
||||
from rhodecode.lib.auth import HasUserGroupPermissionAnyApi, HasPermissionAnyApi
|
||||
from rhodecode.lib.exceptions import UserGroupAssignedException
|
||||
from rhodecode.model.db import Session
|
||||
|
|
@ -217,13 +218,18 @@ def create_user_group(
|
|||
owner = get_user_or_error(owner)
|
||||
active = Optional.extract(active)
|
||||
description = Optional.extract(description)
|
||||
ug = UserGroupModel().create(
|
||||
user_group = UserGroupModel().create(
|
||||
name=group_name, description=description, owner=owner,
|
||||
active=active)
|
||||
Session().flush()
|
||||
creation_data = user_group.get_api_data()
|
||||
audit_logger.store_api(
|
||||
'user_group.create', action_data={'data': creation_data},
|
||||
user=apiuser)
|
||||
Session().commit()
|
||||
return {
|
||||
'msg': 'created new user group `%s`' % group_name,
|
||||
'user_group': ug.get_api_data()
|
||||
'user_group': creation_data
|
||||
}
|
||||
except Exception:
|
||||
log.exception("Error occurred during creation of user group")
|
||||
|
|
@ -291,6 +297,7 @@ def update_user_group(request, apiuser, usergroupid, group_name=Optional(''),
|
|||
if not isinstance(owner, Optional):
|
||||
owner = get_user_or_error(owner)
|
||||
|
||||
old_data = user_group.get_api_data()
|
||||
updates = {}
|
||||
store_update(updates, group_name, 'users_group_name')
|
||||
store_update(updates, description, 'user_group_description')
|
||||
|
|
@ -298,6 +305,9 @@ def update_user_group(request, apiuser, usergroupid, group_name=Optional(''),
|
|||
store_update(updates, active, 'users_group_active')
|
||||
try:
|
||||
UserGroupModel().update(user_group, updates)
|
||||
audit_logger.store_api(
|
||||
'user_group.edit', action_data={'old_data': old_data},
|
||||
user=apiuser)
|
||||
Session().commit()
|
||||
return {
|
||||
'msg': 'updated user group ID:%s %s' % (
|
||||
|
|
@ -359,8 +369,12 @@ def delete_user_group(request, apiuser, usergroupid):
|
|||
raise JSONRPCError(
|
||||
'user group `%s` does not exist' % (usergroupid,))
|
||||
|
||||
old_data = user_group.get_api_data()
|
||||
try:
|
||||
UserGroupModel().delete(user_group)
|
||||
audit_logger.store_api(
|
||||
'user_group.delete', action_data={'old_data': old_data},
|
||||
user=apiuser)
|
||||
Session().commit()
|
||||
return {
|
||||
'msg': 'deleted user group ID:%s %s' % (
|
||||
|
|
@ -438,6 +452,12 @@ def add_user_to_user_group(request, apiuser, usergroupid, userid):
|
|||
user.username, user_group.users_group_name
|
||||
)
|
||||
msg = msg if success else 'User is already in that group'
|
||||
if success:
|
||||
user_data = user.get_api_data()
|
||||
audit_logger.store_api(
|
||||
'user_group.edit.member.add', action_data={'user': user_data},
|
||||
user=apiuser)
|
||||
|
||||
Session().commit()
|
||||
|
||||
return {
|
||||
|
|
@ -501,6 +521,12 @@ def remove_user_from_user_group(request, apiuser, usergroupid, userid):
|
|||
user.username, user_group.users_group_name
|
||||
)
|
||||
msg = msg if success else "User wasn't in group"
|
||||
if success:
|
||||
user_data = user.get_api_data()
|
||||
audit_logger.store_api(
|
||||
'user_group.edit.member.delete', action_data={'user': user_data},
|
||||
user=apiuser)
|
||||
|
||||
Session().commit()
|
||||
return {'success': success, 'msg': msg}
|
||||
except Exception:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue