Merge pull request #55488 from Shllokkk/authorise-set-status

fix: add validation and tests for set_status
This commit is contained in:
ruthra kumar
2026-06-22 13:19:52 +05:30
committed by GitHub
2 changed files with 32 additions and 1 deletions

View File

@@ -225,7 +225,6 @@ def set_multiple_status(names: str, status: str):
@frappe.whitelist()
def set_status(name: str, status: str):
frappe.has_permission("Issue", "write", name, throw=True)
frappe.db.set_value("Issue", name, "status", status)

View File

@@ -524,6 +524,38 @@ class TestFirstResponseTime(TestSetUp):
)
self.assertEqual(issue.first_response_time, 1.0)
def _get_no_perm_user(self):
email = "test_no_issue_perm@example.com"
if not frappe.db.exists("User", email):
user = frappe.new_doc("User")
user.email = email
user.first_name = "No Perm"
user.send_welcome_email = 0
user.insert(ignore_permissions=True)
return email
def test_set_status_requires_write_permission(self):
from erpnext.support.doctype.issue.issue import set_status
issue = frappe.new_doc("Issue")
issue.subject = "_Test Permission Issue"
issue.insert(ignore_permissions=True)
frappe.set_user(self._get_no_perm_user())
self.assertRaises(frappe.PermissionError, set_status, issue.name, "Closed")
frappe.set_user("Administrator")
def test_set_multiple_status_requires_write_permission(self):
import json
from erpnext.support.doctype.issue.issue import set_multiple_status
issue = frappe.new_doc("Issue")
issue.subject = "_Test Permission Issue"
issue.insert(ignore_permissions=True)
frappe.set_user(self._get_no_perm_user())
self.assertRaises(frappe.PermissionError, set_multiple_status, json.dumps([issue.name]), "Closed")
frappe.set_user("Administrator")
def create_issue_and_communication(issue_creation, first_responded_on):
issue = make_issue(issue_creation, index=1)