acl_getname.c File Reference

#include <rsbac/types.h>
#include <rsbac/getname.h>
#include <rsbac/acl_getname.h>
#include <rsbac/helpers.h>
#include <rsbac/error.h>
#include <string.h>

Go to the source code of this file.

Functions

char * get_acl_subject_type_name (char *name, enum rsbac_acl_subject_type_t value)
enum rsbac_acl_subject_type_t get_acl_subject_type_nr (const char *name)
char * get_acl_group_syscall_name (char *name, enum rsbac_acl_group_syscall_type_t value)
enum rsbac_acl_group_syscall_type_t get_acl_group_syscall_nr (const char *name)
char * get_acl_scd_type_name (char *name, enum rsbac_acl_scd_type_t value)
enum rsbac_acl_scd_type_t get_acl_scd_type_nr (const char *name)
char * get_acl_special_right_name (char *name, enum rsbac_acl_special_rights_t value)
enum rsbac_acl_special_rights_t get_acl_special_right_nr (const char *name)

Variables

static char acl_subject_type_list [ACLS_NONE+1][6]
static char acl_group_syscall_list [ACLGS_none+1][18]
static char acl_scd_type_list [AST_none-32+1][20]
static char acl_special_right_list [ACLR_NONE-32+1][20]


Function Documentation

char* get_acl_group_syscall_name char *  name,
enum rsbac_acl_group_syscall_type_t  value
 

Definition at line 82 of file acl_getname.c.

References acl_group_syscall_list, ACLGS_none, and NULL.

Referenced by rsbac_acl_sys_group().

00084   {
00085     if(!name)
00086       return(NULL);
00087     if(value > ACLGS_none)
00088       strcpy(name, "ERROR!");
00089     else
00090       strcpy(name, acl_group_syscall_list[value]);
00091     return(name);
00092   };

enum rsbac_acl_group_syscall_type_t get_acl_group_syscall_nr const char *  name  ) 
 

Definition at line 95 of file acl_getname.c.

References acl_group_syscall_list, and ACLGS_none.

00096   {
00097     enum  rsbac_acl_group_syscall_type_t i;
00098 
00099     if(!name)
00100       return(ACLGS_none);
00101     for (i = 0; i < ACLGS_none; i++)
00102       {
00103         if (!strcmp(name, acl_group_syscall_list[i]))
00104           {
00105             return(i);
00106           }
00107       }
00108     return(ACLGS_none);
00109   };

char* get_acl_scd_type_name char *  name,
enum rsbac_acl_scd_type_t  value
 

Definition at line 112 of file acl_getname.c.

References acl_scd_type_list, AST_min, AST_none, get_scd_type_name(), and NULL.

Referenced by rsbac_acl_remove_acl(), rsbac_acl_remove_acl_entry(), and rsbac_acl_set_mask().

00114   {
00115     if(!name)
00116       return(NULL);
00117     if(value < AST_min)
00118       {
00119         return(get_scd_type_name(name, value));
00120       }
00121     value -= AST_min;
00122     if(value > AST_none)
00123       {
00124         strcpy(name, "ERROR!");
00125         return(name);
00126       }
00127     strcpy(name, acl_scd_type_list[value]);
00128     return(name);
00129   };

enum rsbac_acl_scd_type_t get_acl_scd_type_nr const char *  name  ) 
 

Definition at line 132 of file acl_getname.c.

References acl_scd_type_list, AST_none, and get_scd_type_nr().

00133   {
00134      enum  rsbac_acl_scd_type_t i;
00135     
00136     if(!name)
00137       return(AST_none);
00138     for (i = 0; i < AST_none-32; i++)
00139       {
00140         if (!strcmp(name, acl_scd_type_list[i]))
00141           {
00142             return(i+32);
00143           }
00144       }
00145     return(get_scd_type_nr(name));
00146   };

char* get_acl_special_right_name char *  name,
enum rsbac_acl_special_rights_t  value
 

Definition at line 149 of file acl_getname.c.

References acl_special_right_list, ACLR_NONE, get_request_name(), NULL, and RSBAC_ACL_SPECIAL_RIGHT_BASE.

00151   {
00152     if(!name)
00153       return(NULL);
00154     if(value < RSBAC_ACL_SPECIAL_RIGHT_BASE)
00155       {
00156         return(get_request_name(name, value));
00157       }
00158     value -= RSBAC_ACL_SPECIAL_RIGHT_BASE;
00159     if(value > ACLR_NONE)
00160       {
00161         strcpy(name, "ERROR!");
00162         return(name);
00163       }
00164     strcpy(name, acl_special_right_list[value]);
00165     return(name);
00166   };

enum rsbac_acl_special_rights_t get_acl_special_right_nr const char *  name  ) 
 

Definition at line 169 of file acl_getname.c.

References acl_special_right_list, ACLR_NONE, get_request_nr(), and RSBAC_ACL_SPECIAL_RIGHT_BASE.

00170   {
00171      enum  rsbac_acl_special_rights_t i;
00172     
00173     if(!name)
00174       return(ACLR_NONE);
00175     for (i = 0; i < (ACLR_NONE - RSBAC_ACL_SPECIAL_RIGHT_BASE); i++)
00176       {
00177         if (!strcmp(name, acl_special_right_list[i]))
00178           {
00179             return(i + RSBAC_ACL_SPECIAL_RIGHT_BASE);
00180           }
00181       }
00182     return(get_request_nr(name));
00183   };

char* get_acl_subject_type_name char *  name,
enum rsbac_acl_subject_type_t  value
 

Definition at line 52 of file acl_getname.c.

References acl_subject_type_list, ACLS_NONE, and NULL.

Referenced by rsbac_acl_remove_acl_entry(), rsbac_acl_sys_add_to_acl_entry(), rsbac_acl_sys_remove_acl_entry(), rsbac_acl_sys_remove_from_acl_entry(), and rsbac_acl_sys_set_acl_entry().

00054   {
00055     if(!name)
00056       return(NULL);
00057     if(value > ACLS_NONE)
00058       strcpy(name, "ERROR!");
00059     else
00060       strcpy(name, acl_subject_type_list[value]);
00061     return(name);
00062   };

enum rsbac_acl_subject_type_t get_acl_subject_type_nr const char *  name  ) 
 

Definition at line 65 of file acl_getname.c.

References acl_subject_type_list, and ACLS_NONE.

00066   {
00067      enum  rsbac_acl_subject_type_t i;
00068 
00069     if(!name)
00070       return(ACLS_NONE);
00071     for (i = 0; i < ACLS_NONE; i++)
00072       {
00073         if (!strcmp(name, acl_subject_type_list[i]))
00074           {
00075             return(i);
00076           }
00077       }
00078     return(ACLS_NONE);
00079   };


Variable Documentation

char acl_group_syscall_list[ACLGS_none+1][18] [static]
 

Initial value:

 {
                          "add_group",
                          "change_group",
                          "remove_group",
                          "get_group_entry",
                          "list_groups",
                          "add_member",
                          "remove_member",
                          "get_user_groups",
                          "get_group_members",
                          "none" }

Definition at line 28 of file acl_getname.c.

Referenced by get_acl_group_syscall_name(), and get_acl_group_syscall_nr().

char acl_scd_type_list[AST_none-32+1][20] [static]
 

Initial value:

 {
                          "auth_administration",
                          "none" }

Definition at line 40 of file acl_getname.c.

Referenced by get_acl_scd_type_name(), and get_acl_scd_type_nr().

char acl_special_right_list[ACLR_NONE-32+1][20] [static]
 

Initial value:

 {
                          "FORWARD",
                          "ACCESS_CONTROL",
                          "SUPERVISOR",
                          "NONE" }

Definition at line 44 of file acl_getname.c.

Referenced by get_acl_special_right_name(), and get_acl_special_right_nr().

char acl_subject_type_list[ACLS_NONE+1][6] [static]
 

Initial value:

 {
                          "USER",
                          "ROLE",
                          "GROUP",
                          "NONE" }

Definition at line 22 of file acl_getname.c.

Referenced by get_acl_subject_type_name(), and get_acl_subject_type_nr().


Generated on Sun May 21 14:31:07 2006 for RSBAC by  doxygen 1.4.2