From 2b9aa449f4dab05a68f7085de75b5c6555041967 Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Fri, 25 Jun 2010 19:30:49 +0200 Subject: [PATCH] Added functions Autoz::get_role_from_id and Autoz::get_resource_from_id. Some adjustments. --- src/autoz.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- src/autoz.h | 3 +++ 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/autoz.c b/src/autoz.c index c52fa99..5a3430c 100644 --- a/src/autoz.c +++ b/src/autoz.c @@ -117,6 +117,9 @@ autoz_add_role_with_parents (Autoz *autoz, AutozIRole *irole, ...) const gchar *role_id; + g_return_if_fail (IS_AUTOZ (autoz)); + g_return_if_fail (AUTOZ_IS_IROLE (irole)); + role_id = autoz_irole_get_role_id (irole); if (g_hash_table_lookup (priv->roles, role_id) == NULL) @@ -151,6 +154,9 @@ autoz_add_resource (Autoz *autoz, AutozIResource *iresource) { AutozPrivate *priv = AUTOZ_GET_PRIVATE (autoz); + g_return_if_fail (IS_AUTOZ (autoz)); + g_return_if_fail (AUTOZ_IS_IRESOURCE (iresource)); + const gchar *resource_id; resource_id = autoz_iresource_get_resource_id (iresource); @@ -167,10 +173,34 @@ autoz_add_resource (Autoz *autoz, AutozIResource *iresource) } } +AutozIRole +*autoz_get_role_from_id (Autoz *autoz, const gchar *role_id) +{ + AutozPrivate *priv; + + g_return_val_if_fail (IS_AUTOZ (autoz), NULL); + + priv = AUTOZ_GET_PRIVATE (autoz); + + return g_hash_table_lookup (priv->roles, role_id); +} + +AutozIResource +*autoz_get_resource_from_id (Autoz *autoz, const gchar *resource_id) +{ + AutozPrivate *priv; + + g_return_val_if_fail (IS_AUTOZ (autoz), NULL); + + priv = AUTOZ_GET_PRIVATE (autoz); + + return g_hash_table_lookup (priv->resources, resource_id); +} + void autoz_allow (Autoz *autoz, AutozIRole *irole, AutozIResource *iresource) { - AutozPrivate *priv = AUTOZ_GET_PRIVATE (autoz); + AutozPrivate *priv; Role *role; Resource *resource; @@ -179,6 +209,11 @@ autoz_allow (Autoz *autoz, AutozIRole *irole, AutozIResource *iresource) gchar *str_id; + g_return_if_fail (IS_AUTOZ (autoz)); + g_return_if_fail (AUTOZ_IS_IRESOURCE (iresource)); + + priv = AUTOZ_GET_PRIVATE (autoz); + /* check if exists */ role = g_hash_table_lookup (priv->roles, autoz_irole_get_role_id (irole)); if (role == NULL) @@ -259,8 +294,13 @@ autoz_is_allowed (Autoz *autoz, AutozIRole *irole, AutozIResource *iresource) gchar *str_id; - AutozPrivate *priv = AUTOZ_GET_PRIVATE (autoz); + AutozPrivate *priv; + + g_return_val_if_fail (IS_AUTOZ (autoz), FALSE); + g_return_val_if_fail (AUTOZ_IS_IROLE (irole), FALSE); + g_return_val_if_fail (AUTOZ_IS_IRESOURCE (iresource), FALSE); + priv = AUTOZ_GET_PRIVATE (autoz); ret = FALSE; role = g_hash_table_lookup (priv->roles, autoz_irole_get_role_id (irole)); diff --git a/src/autoz.h b/src/autoz.h index 5d645b3..0490ac2 100644 --- a/src/autoz.h +++ b/src/autoz.h @@ -58,6 +58,9 @@ Autoz *autoz_new (void); void autoz_add_role (Autoz *autoz, AutozIRole *irole); void autoz_add_role_with_parents (Autoz *autoz, AutozIRole *irole, ...); +AutozIRole *autoz_get_role_from_id (Autoz *autoz, const gchar *role_id); +AutozIResource *autoz_get_resource_from_id (Autoz *autoz, const gchar *resource_id); + void autoz_add_resource (Autoz *autoz, AutozIResource *iresource); void autoz_allow (Autoz *autoz, AutozIRole *irole, AutozIResource *iresource); -- 2.49.0