Merge pull request #1020 from taigaio/add-user-update-throttling
Add user update throttlingremotes/origin/fix-throttling-bug
commit
b06e28e596
|
@ -446,6 +446,7 @@ REST_FRAMEWORK = {
|
||||||
"login-fail": None,
|
"login-fail": None,
|
||||||
"register-success": None,
|
"register-success": None,
|
||||||
"user-detail": None,
|
"user-detail": None,
|
||||||
|
"user-update": None,
|
||||||
},
|
},
|
||||||
"DEFAULT_THROTTLE_WHITELIST": [],
|
"DEFAULT_THROTTLE_WHITELIST": [],
|
||||||
"FILTER_BACKEND": "taiga.base.filters.FilterBackend",
|
"FILTER_BACKEND": "taiga.base.filters.FilterBackend",
|
||||||
|
|
|
@ -73,6 +73,7 @@ DATABASES = {
|
||||||
# "login-fail": None,
|
# "login-fail": None,
|
||||||
# "register-success": None,
|
# "register-success": None,
|
||||||
# "user-detail": None,
|
# "user-detail": None,
|
||||||
|
# "user-update": None,
|
||||||
#}
|
#}
|
||||||
|
|
||||||
# This list should containt:
|
# This list should containt:
|
||||||
|
|
|
@ -38,6 +38,7 @@ REST_FRAMEWORK["DEFAULT_THROTTLE_RATES"] = {
|
||||||
"login-fail": None,
|
"login-fail": None,
|
||||||
"register-success": None,
|
"register-success": None,
|
||||||
"user-detail": None,
|
"user-detail": None,
|
||||||
|
"user-update": None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ from . import services
|
||||||
from . import utils as user_utils
|
from . import utils as user_utils
|
||||||
from .signals import user_cancel_account as user_cancel_account_signal
|
from .signals import user_cancel_account as user_cancel_account_signal
|
||||||
from .signals import user_change_email as user_change_email_signal
|
from .signals import user_change_email as user_change_email_signal
|
||||||
from .throttling import UserDetailRateThrottle
|
from .throttling import UserDetailRateThrottle, UserUpdateRateThrottle
|
||||||
|
|
||||||
class UsersViewSet(ModelCrudViewSet):
|
class UsersViewSet(ModelCrudViewSet):
|
||||||
permission_classes = (permissions.UserPermission,)
|
permission_classes = (permissions.UserPermission,)
|
||||||
|
@ -58,7 +58,7 @@ class UsersViewSet(ModelCrudViewSet):
|
||||||
admin_validator_class = validators.UserAdminValidator
|
admin_validator_class = validators.UserAdminValidator
|
||||||
validator_class = validators.UserValidator
|
validator_class = validators.UserValidator
|
||||||
filter_backends = (MembersFilterBackend,)
|
filter_backends = (MembersFilterBackend,)
|
||||||
throttle_classes = (UserDetailRateThrottle,)
|
throttle_classes = (UserDetailRateThrottle, UserUpdateRateThrottle)
|
||||||
model = models.User
|
model = models.User
|
||||||
|
|
||||||
def get_serializer_class(self):
|
def get_serializer_class(self):
|
||||||
|
|
|
@ -22,3 +22,8 @@ from taiga.base import throttling
|
||||||
class UserDetailRateThrottle(throttling.GlobalThrottlingMixin, throttling.ThrottleByActionMixin, throttling.SimpleRateThrottle):
|
class UserDetailRateThrottle(throttling.GlobalThrottlingMixin, throttling.ThrottleByActionMixin, throttling.SimpleRateThrottle):
|
||||||
scope = "user-detail"
|
scope = "user-detail"
|
||||||
throttled_actions = ["by_username", "retrieve"]
|
throttled_actions = ["by_username", "retrieve"]
|
||||||
|
|
||||||
|
|
||||||
|
class UserUpdateRateThrottle(throttling.UserRateThrottle, throttling.ThrottleByActionMixin):
|
||||||
|
scope = "user-update"
|
||||||
|
throttled_actions = ["update", "partial_update"]
|
||||||
|
|
Loading…
Reference in New Issue