feature: implements user profile quotas update
This commit is contained in:
parent
a960c9f99c
commit
0e08a98987
8 changed files with 139 additions and 4 deletions
|
|
@ -961,6 +961,27 @@ def admin_routes(config):
|
|||
request_method="POST",
|
||||
)
|
||||
|
||||
# user quotas
|
||||
config.add_route(name="edit_user_quotas", pattern=r"/users/{user_id:\d+}/edit/quotas", user_route=True)
|
||||
config.add_view(
|
||||
UsersView,
|
||||
attr="user_quotas",
|
||||
route_name="edit_user_quotas",
|
||||
request_method="GET",
|
||||
renderer="rhodecode:templates/admin/users/user_edit.mako",
|
||||
)
|
||||
|
||||
config.add_route(
|
||||
name="edit_user_quotas_update", pattern=r"/users/{user_id:\d+}/edit/quotas/update", user_route=True
|
||||
)
|
||||
config.add_view(
|
||||
UsersView,
|
||||
attr="user_quotas_update",
|
||||
route_name="edit_user_quotas_update",
|
||||
request_method="POST",
|
||||
renderer="rhodecode:templates/admin/users/user_edit.mako",
|
||||
)
|
||||
|
||||
# user audit logs
|
||||
config.add_route(name="edit_user_audit_logs", pattern=r"/users/{user_id:\d+}/edit/audit", user_route=True)
|
||||
config.add_view(
|
||||
|
|
|
|||
|
|
@ -55,8 +55,10 @@ from rhodecode.model.forms import (
|
|||
UserPermissionsForm,
|
||||
UserExtraEmailForm,
|
||||
UserExtraIpForm,
|
||||
UserQuotasUpdateForm,
|
||||
)
|
||||
from rhodecode.model.permission import PermissionModel
|
||||
from rhodecode.model.quota_model import UserQuotaModel
|
||||
from rhodecode.model.repo_group import RepoGroupModel
|
||||
from rhodecode.model.ssh_key import SshKeyModel
|
||||
from rhodecode.model.user import UserModel
|
||||
|
|
@ -283,6 +285,9 @@ class UsersView(UserAppView):
|
|||
("zh", "Chinese (zh)"),
|
||||
]
|
||||
|
||||
app_settings = c.rc_config
|
||||
c.quotas_enabled = app_settings.get("rhodecode_user_quotas_enabled", UserQuotaModel.DEFAULT_QUOTAS_ENABLED)
|
||||
|
||||
c.allowed_extern_types = [(x.uid, x.get_display_name()) for x in self.get_auth_plugins()]
|
||||
perms = req.registry.settings.get("available_permissions")
|
||||
if not perms:
|
||||
|
|
@ -1122,6 +1127,43 @@ class UsersView(UserAppView):
|
|||
|
||||
return HTTPFound(h.route_path("edit_user_groups_management", user_id=user_id))
|
||||
|
||||
@LoginRequired()
|
||||
@HasPermissionAllDecorator("hg.admin")
|
||||
def user_quotas(self):
|
||||
_ = self.request.translate
|
||||
c = self.load_default_context()
|
||||
c.user = self.db_user
|
||||
|
||||
quota_model = UserQuotaModel(c.user)
|
||||
|
||||
c.active = "user_quotas"
|
||||
c.user_repo_quotas = quota_model.formatted_user_max_repository_count_allowance()
|
||||
c.user_repo_count = quota_model.user_repositories_count
|
||||
|
||||
return self._get_template_context(c)
|
||||
|
||||
@LoginRequired()
|
||||
@HasPermissionAllDecorator("hg.admin")
|
||||
def user_quotas_update(self):
|
||||
_ = self.request.translate
|
||||
c = self.load_default_context()
|
||||
c.user = self.db_user
|
||||
|
||||
c.active = "user_quotas"
|
||||
|
||||
user_form = UserQuotasUpdateForm()()
|
||||
try:
|
||||
quota_model = UserQuotaModel(c.user)
|
||||
form_result = user_form.to_python(dict(self.request.POST))
|
||||
quota_model.user_max_repository_count_allowance = form_result["user_repo_quotas"]
|
||||
h.flash(_("Updated user '%s' repository quota") % c.user.username, category="success")
|
||||
except Exception as e:
|
||||
log.exception("Exception updating user quotas, %s", e)
|
||||
h.flash(
|
||||
_("Exception updating user quotas of user %s") % self.request.POST.get("username"), category="error"
|
||||
)
|
||||
raise HTTPFound(h.route_path("edit_user_quotas", user_id=c.user.user_id))
|
||||
|
||||
@LoginRequired()
|
||||
@HasPermissionAllDecorator("hg.admin")
|
||||
def user_audit_logs(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue