]> saetta.ns0.it Git - zakautho/libzakautho/commitdiff
Added functions Autoz::get_role_from_id and Autoz::get_resource_from_id.
authorAndrea Zagli <azagli@libero.it>
Fri, 25 Jun 2010 17:30:49 +0000 (19:30 +0200)
committerAndrea Zagli <azagli@libero.it>
Fri, 25 Jun 2010 17:30:49 +0000 (19:30 +0200)
Some adjustments.

src/autoz.c
src/autoz.h

index c52fa995c655d1145426e6217ffcedfbf934cc22..5a3430c4a82f729372fad18eaaaab838129ad7b1 100644 (file)
@@ -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));
index 5d645b36fcb83875f9bd083f8e4fd35ee283cf80..0490ac24fe567629e7b7453a298572fcd56633e9 100644 (file)
@@ -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);