]> git.ipfire.org Git - pbs.git/commitdiff
jobs: Use a simpler permission check for control connections
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 May 2023 16:25:52 +0000 (16:25 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 May 2023 16:25:52 +0000 (16:25 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/web/jobs.py

index e4d6d3aca7c9c5a60bb40d3929bb184d997b1fb3..19eecf2159986d71f90d99dceab8472f7c0626b6 100644 (file)
@@ -25,10 +25,10 @@ class APIv1ControlHandler(base.APIMixin, tornado.websocket.WebSocketHandler):
                if not self.job:
                        raise tornado.web.HTTPError(404, "Could not find job %s" % job_id)
 
-               # Check if the builder matches
-               if not self.current_user == self.job.builder:
-                       raise tornado.web.HTTPError(403, "Job %s belongs to %s, not %s" % \
-                               (self.job, self.job.builder, self.current_user))
+               # Check permissions
+               if not self.job.has_perm(self.current_user):
+                       raise tornado.web.HTTPError(403, "%s cannot control job %s" \
+                               % (self.current_user, self.job))
 
                # Consider the job connected
                self.job.connected(self)