From 0ede70c51af54212c700fb1791e2a192e412d851 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 6 Aug 2013 13:26:53 +0200 Subject: libcli: Add security_token_system_privilege(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Schneider Reviewed-by: Günther Deschner --- libcli/security/privileges.c | 13 +++++++++++++ libcli/security/privileges.h | 10 ++++++++++ 2 files changed, 23 insertions(+) (limited to 'libcli') 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 */ -- cgit