decorator: Remove unnecessary flag for process_client.

We can express the same idea more simply by not passing `user` in
cases where it isn't valid for UserActivity.

Signed-off-by: Zixuan James Li <p359101898@gmail.com>
This commit is contained in:
Zixuan James Li
2022-06-12 15:31:23 -04:00
committed by Tim Abbott
parent b89e0f6771
commit 789b66ff3b
2 changed files with 11 additions and 7 deletions

View File

@@ -187,13 +187,19 @@ def require_billing_access(func: ViewFuncT) -> ViewFuncT:
def process_client( def process_client(
request: HttpRequest, request: HttpRequest,
user: Union[UserProfile, AnonymousUser], user: Union[UserProfile, AnonymousUser, None] = None,
*, *,
is_browser_view: bool = False, is_browser_view: bool = False,
client_name: Optional[str] = None, client_name: Optional[str] = None,
skip_update_user_activity: bool = False,
query: Optional[str] = None, query: Optional[str] = None,
) -> None: ) -> None:
"""The optional user parameter requests that a UserActivity row be
created/updated to record this request.
In particular, unauthenticate requests and those authenticated to
a non-user object like RemoteZulipServer should not pass the
`user` parameter.
"""
request_notes = RequestNotes.get_notes(request) request_notes = RequestNotes.get_notes(request)
if client_name is None: if client_name is None:
client_name = request_notes.client_name client_name = request_notes.client_name
@@ -209,7 +215,7 @@ def process_client(
client_name = "website" client_name = "website"
request_notes.client = get_client(client_name) request_notes.client = get_client(client_name)
if not skip_update_user_activity and user.is_authenticated: if user is not None and user.is_authenticated:
update_user_activity(request, user, query) update_user_activity(request, user, query)
@@ -260,7 +266,7 @@ def validate_api_key(
request.user = remote_server request.user = remote_server
remote_server.rate_limits = "" remote_server.rate_limits = ""
# Skip updating UserActivity, since remote_server isn't actually a UserProfile object. # Skip updating UserActivity, since remote_server isn't actually a UserProfile object.
process_client(request, remote_server, skip_update_user_activity=True) process_client(request)
return remote_server return remote_server
user_profile = access_user_by_api_key(request, api_key, email=role) user_profile = access_user_by_api_key(request, api_key, email=role)
@@ -782,9 +788,7 @@ def authenticate_log_and_execute_json(
process_client( process_client(
request, request,
request.user,
is_browser_view=True, is_browser_view=True,
skip_update_user_activity=True,
query=view_func.__name__, query=view_func.__name__,
) )
return limited_view_func(request, request.user, *args, **kwargs) return limited_view_func(request, request.user, *args, **kwargs)

View File

@@ -949,7 +949,7 @@ def check_server_incompatibility(request: HttpRequest) -> bool:
@csrf_exempt @csrf_exempt
def api_get_server_settings(request: HttpRequest) -> HttpResponse: def api_get_server_settings(request: HttpRequest) -> HttpResponse:
# Log which client is making this request. # Log which client is making this request.
process_client(request, request.user, skip_update_user_activity=True) process_client(request)
result = dict( result = dict(
authentication_methods=get_auth_backends_data(request), authentication_methods=get_auth_backends_data(request),
zulip_version=ZULIP_VERSION, zulip_version=ZULIP_VERSION,