diff --git a/apps/orgs/models.py b/apps/orgs/models.py
index c9bdc1f53..f337864fc 100644
--- a/apps/orgs/models.py
+++ b/apps/orgs/models.py
@@ -118,6 +118,11 @@ class Organization(models.Model):
return True
return False
+ def can_user_by(self, user):
+ if self.get_org_users().filter(id=user.id):
+ return True
+ return False
+
def is_real(self):
return self.id not in (self.DEFAULT_NAME, self.ROOT_ID, self.SYSTEM_ID)
diff --git a/apps/users/models/user.py b/apps/users/models/user.py
index f58422fcd..aaa3bcebb 100644
--- a/apps/users/models/user.py
+++ b/apps/users/models/user.py
@@ -217,6 +217,10 @@ class RoleMixin:
def can_audit_current_org(self):
return current_org.can_audit_by(self)
+ @property
+ def can_user_current_org(self):
+ return current_org.can_user_by(self)
+
@property
def can_admin_or_audit_current_org(self):
return self.can_admin_current_org or self.can_audit_current_org
diff --git a/apps/users/templates/users/user_detail.html b/apps/users/templates/users/user_detail.html
index 8e049938c..2c4fad1c9 100644
--- a/apps/users/templates/users/user_detail.html
+++ b/apps/users/templates/users/user_detail.html
@@ -211,46 +211,47 @@
+ {% if request.user.can_admin_current_org %}
+ {% if user_object.can_user_current_org or user_object.can_admin_current_org %}
+
+
+ {% trans 'User group' %}
+
+
+
+
+
- {% if user_object.is_current_org_admin %}
-
-
- {% trans 'User group' %}
+ {% for group in user_object.groups.all %}
+
+
+ {{ group.name }}
+ |
+
+
+ |
+
+ {% endfor %}
+
+
+
-
-
-
-
-
- {% for group in user_object.groups.all %}
-
-
- {{ group.name }}
- |
-
-
- |
-
- {% endfor %}
-
-
-
-
+ {% endif %}
{% endif %}