Skip to content

Commit d8422d9

Browse files
committed
fix: fixed dashboard update user profile
1 parent b80e5c1 commit d8422d9

2 files changed

Lines changed: 25 additions & 18 deletions

File tree

client/src/components/dashboard/UpdateUser.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import { $api } from '@/clients';
5353
import { requiredRules, listAllOfficeUsers } from '@/utils';
5454
import type { Api } from '@/types';
5555
import { listOffices, listTeamLeads, userInputs as UpdateUserForm , listAllUsers} from '@/utils/add_update_user_form';
56+
import { ApiClientBase } from '@/clients/api/base';
5657
import { onMounted, ref, watch } from 'vue';
5758
5859
export default {
@@ -81,6 +82,9 @@ export default {
8182
if (field.key === 'location' || field.key === 'reporting_to') {
8283
field.options = []
8384
}
85+
if (field.key === 'hidden_from_users' && ApiClientBase.user.value?.fullUser?.location?.name !== 'Egypt') {
86+
userInputs.value.splice(userInputs.value.indexOf(field), 1)
87+
}
8488
}
8589
8690
locations.value = await listOffices({ count: 10, key: 'location', items: [], page: 1 })

server/cshr/views/users.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -336,28 +336,31 @@ def put(self, request: Request, id: str, format=None) -> Response:
336336
if not image:
337337
request.data["image"] = None
338338

339-
new_hidden_from_ids = set(request.data.get("hidden_from_users"))
340-
if new_hidden_from_ids is not None and user.id in new_hidden_from_ids:
341-
return CustomResponse.bad_request(message="A user cannot be hidden from themselves.")
342-
343-
users = User.objects.filter(id__in=new_hidden_from_ids)
344-
if users.count() != len(new_hidden_from_ids):
345-
return CustomResponse.not_found(
346-
status_code=404,
347-
message="One of the hidden from users does not exist.",
348-
)
339+
raw_hidden_from = request.data.get("hidden_from_users")
340+
new_hidden_from_ids = set(raw_hidden_from) if raw_hidden_from is not None else None
341+
if new_hidden_from_ids is not None:
342+
if user.id in new_hidden_from_ids:
343+
return CustomResponse.bad_request(message="A user cannot be hidden from themselves.")
344+
users = User.objects.filter(id__in=new_hidden_from_ids)
345+
if users.count() != len(new_hidden_from_ids):
346+
return CustomResponse.not_found(
347+
status_code=404,
348+
message="One of the hidden from users does not exist.",
349+
)
349350

350351
serializer = self.get_serializer(user, data=request.data, partial=True)
351352
if serializer.is_valid():
352353
office = get_office_by_id(request.data.get("location"))
353-
user = serializer.save(
354-
team=request.data.get("team"),
355-
gender=request.data.get("gender"),
356-
location=office,
357-
joining_at=request.data.get("joining_at"),
358-
reporting_to=request.data.get("reporting_to"),
359-
hidden_from=new_hidden_from_ids,
360-
)
354+
save_kwargs = {
355+
"team": request.data.get("team"),
356+
"gender": request.data.get("gender"),
357+
"location": office,
358+
"joining_at": request.data.get("joining_at"),
359+
"reporting_to": request.data.get("reporting_to"),
360+
}
361+
if new_hidden_from_ids is not None:
362+
save_kwargs["hidden_from"] = new_hidden_from_ids
363+
user = serializer.save(**save_kwargs)
361364

362365
return CustomResponse.success(
363366
data=serializer.data, status_code=202, message="User updated"

0 commit comments

Comments
 (0)