| Server IP : 198.38.94.13 / Your IP : 216.73.217.33 Web Server : Apache System : Linux d4744.dxb1.stableserver.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : revivere ( 1140) PHP Version : 8.2.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/saltstack/salt/lib/python3.10/site-packages/salt/acl/ |
Upload File : |
"""
The acl module handles publisher_acl operations
Additional information on publisher_acl can be
found by reading the salt documentation:
https://docs.saltproject.io/en/latest/ref/publisheracl.html
"""
# Import python libraries
import salt.utils.stringutils
class PublisherACL:
"""
Represents the publisher ACL and provides methods
to query the ACL for given operations
"""
def __init__(self, blacklist):
self.blacklist = blacklist
def user_is_blacklisted(self, user):
"""
Takes a username as a string and returns a boolean. True indicates that
the provided user has been blacklisted
"""
return not salt.utils.stringutils.check_whitelist_blacklist(
user, blacklist=self.blacklist.get("users", [])
)
def cmd_is_blacklisted(self, cmd):
# If this is a regular command, it is a single function
if isinstance(cmd, str):
cmd = [cmd]
for fun in cmd:
if not salt.utils.stringutils.check_whitelist_blacklist(
fun, blacklist=self.blacklist.get("modules", [])
):
return True
return False
def user_is_whitelisted(self, user):
return salt.utils.stringutils.check_whitelist_blacklist(
user, whitelist=self.blacklist.get("users", [])
)
def cmd_is_whitelisted(self, cmd):
# If this is a regular command, it is a single function
if isinstance(cmd, str):
cmd = [cmd]
for fun in cmd:
if salt.utils.stringutils.check_whitelist_blacklist(
fun, whitelist=self.blacklist.get("modules", [])
):
return True
return False