From 04a8d348674cee74f14debcb3d6b97a8da9834b5 Mon Sep 17 00:00:00 2001
From: jette <jette@schedmd.com>
Date: Tue, 11 Oct 2011 10:50:01 -0700
Subject: [PATCH] Prevent authorized user accidentally changing job hold type

Prevent an authorized user from accidentally changing job hold type
from UserHold to AdminHold
---
 src/slurmctld/job_mgr.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 8c55dae949b..ab58bb46a74 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -7190,7 +7190,10 @@ int update_job(job_desc_msg_t * job_specs, uid_t uid)
 			error_code = ESLURM_DISABLED;
 		else if (job_ptr->priority == job_specs->priority) {
 			debug("update_job: setting priority to current value");
-			if ((job_ptr->priority == 0) && authorized) {
+			if ((job_ptr->priority == 0) &&
+			    (job_ptr->user_id != uid) && authorized) {
+				/* Authorized user can change from user hold
+				 * to admin hold or admin hold to user hold */
 				if (job_specs->alloc_sid == ALLOC_SID_USER_HOLD)
 					job_ptr->state_reason = WAIT_HELD_USER;
 				else
-- 
GitLab