diff options
-rw-r--r-- | libcli/security/privileges.c | 13 | ||||
-rw-r--r-- | libcli/security/privileges.h | 10 |
2 files changed, 23 insertions, 0 deletions
diff --git a/libcli/security/privileges.c b/libcli/security/privileges.c index adb67c19f2..d2731c3dd0 100644 --- a/libcli/security/privileges.c +++ b/libcli/security/privileges.c @@ -422,6 +422,19 @@ bool security_token_has_privilege(const struct security_token *token, enum sec_p return false; } +bool security_token_system_privilege(const struct security_token *token) +{ + if (token == NULL) { + return false; + } + + if (token->privilege_mask == (uint64_t)~0) { + return true; + } + + return false; +} + /* set a bit in the privilege mask */ diff --git a/libcli/security/privileges.h b/libcli/security/privileges.h index a65dbdfcd7..eb3ab5e784 100644 --- a/libcli/security/privileges.h +++ b/libcli/security/privileges.h @@ -89,6 +89,16 @@ const char *sec_privilege_name_from_index(int idx); */ bool security_token_has_privilege(const struct security_token *token, enum sec_privilege privilege); + +/** + * @brief Check if the security token has system privileges. + * + * @param[in] token The token to check. + * + * @return True if the token has system privileges, false if not. + */ +bool security_token_system_privilege(const struct security_token *token); + /* set a bit in the privilege mask */ |