mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-12-15 08:32:48 +00:00
Compare commits
7 Commits
pr@dev@ter
...
v2.14.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95412d739a | ||
|
|
93b5876469 | ||
|
|
da02d1e456 | ||
|
|
5928b265b7 | ||
|
|
f46c043db5 | ||
|
|
cbc1ab411b | ||
|
|
5e03af7243 |
@@ -147,7 +147,7 @@
|
||||
{% csrf_token %}
|
||||
<div style="line-height: 17px;margin-bottom: 20px;color: #999999;">
|
||||
{% if form.errors %}
|
||||
<p class="help-block">
|
||||
<p class="help-block red-fonts">
|
||||
{% if form.non_field_errors %}
|
||||
{{ form.non_field_errors.as_text }}
|
||||
{% endif %}
|
||||
|
||||
@@ -206,10 +206,12 @@ class Ticket(CommonModelMixin, OrgModelMixin):
|
||||
self.save()
|
||||
post_change_ticket_action.send(sender=self.__class__, ticket=self, action=action)
|
||||
|
||||
# ticket
|
||||
def has_assignee(self, assignee):
|
||||
def has_current_assignee(self, assignee):
|
||||
return self.ticket_steps.filter(ticket_assignees__assignee=assignee, level=self.approval_step).exists()
|
||||
|
||||
def has_all_assignee(self, assignee):
|
||||
return self.ticket_steps.filter(ticket_assignees__assignee=assignee).exists()
|
||||
|
||||
@classmethod
|
||||
def get_user_related_tickets(cls, user):
|
||||
queries = Q(applicant=user) | Q(ticket_steps__ticket_assignees__assignee=user)
|
||||
|
||||
@@ -15,4 +15,4 @@ class IsApplicant(permissions.BasePermission):
|
||||
|
||||
class IsAssignee(permissions.BasePermission):
|
||||
def has_permission(self, request, view):
|
||||
return view.ticket.has_assignee(request.user)
|
||||
return view.ticket.has_all_assignee(request.user)
|
||||
|
||||
@@ -3,7 +3,7 @@ from rest_framework import permissions
|
||||
|
||||
class IsAssignee(permissions.BasePermission):
|
||||
def has_object_permission(self, request, view, obj):
|
||||
return obj.has_assignee(request.user)
|
||||
return obj.has_current_assignee(request.user)
|
||||
|
||||
|
||||
class IsApplicant(permissions.BasePermission):
|
||||
|
||||
@@ -537,7 +537,7 @@ class MFAMixin:
|
||||
methods = []
|
||||
if self.otp_secret_key:
|
||||
methods.append(MFAType.OTP)
|
||||
if self.phone:
|
||||
if settings.XPACK_ENABLED and settings.SMS_ENABLED and self.phone:
|
||||
methods.append(MFAType.SMS_CODE)
|
||||
return methods
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
# common
|
||||
gcc
|
||||
g++
|
||||
cmake
|
||||
curl
|
||||
wget
|
||||
@@ -12,6 +13,7 @@ default-mysql-client
|
||||
default-libmysqlclient-dev
|
||||
|
||||
# Pillow
|
||||
libpq-dev
|
||||
libffi-dev
|
||||
# libfreetype6-dev
|
||||
# libfribidi-dev
|
||||
|
||||
@@ -1 +1 @@
|
||||
libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk python-dev openssl libssl-dev libldap2-dev libsasl2-dev sqlite libkrb5-dev sshpass libmysqlclient-dev
|
||||
g++ libpq-dev libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk python-dev openssl libssl-dev libldap2-dev libsasl2-dev sqlite libkrb5-dev sshpass libmysqlclient-dev
|
||||
|
||||
Reference in New Issue
Block a user