Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
permission.h File Reference
#include "typedefs.h"
#include "grassroots_util_library.h"
#include "linked_list.h"
#include "user_details.h"
#include "user_group.h"
#include "mongodb_tool.h"
#include "grassroots_server.h"
Include dependency graph for permission.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Permissions
 
struct  PermissionsGroup
 
struct  PermissionsManager
 

Enumerations

enum  AccessMode { AM_NONE, AM_READ, AM_WRITE, AM_DELETE }
 

Functions

PermissionsManagerAllocatePermissionsManager (GrassrootsServer *grassroots_p, const char *database_s, const char *collection_s)
 
void FreePermissionsManager (PermissionsManager *manager_p)
 
PermissionsAllocatePermissions (AccessMode access)
 
void ClearPermissions (Permissions *permissions_p)
 
void FreePermissions (Permissions *permissions_p)
 
PermissionsGroupAllocatePermissionsGroup (void)
 
void FreePermissionsGroup (PermissionsGroup *permissions_group_p)
 
PermissionsGetPermissionsFromJSON (const json_t *permissions_json_p, const GrassrootsServer *grassroots_p)
 
PermissionsGroupGetPermissionsGroupFromJSON (const json_t *permissions_group_json_p, const GrassrootsServer *grassroots_p)
 
PermissionsGroupGetPermissionsGroupFromChildJSON (const json_t *parent_json_p, const char *const key_s, const GrassrootsServer *grassroots_p)
 
json_t * GetPermissionsGroupAsJSON (const PermissionsGroup *permissions_group_p, const ViewFormat vf)
 
bool AddPermissionsGroupToJSON (const PermissionsGroup *permissions_group_p, json_t *json_p, const char *const key_s, const ViewFormat vf)
 
json_t * GetPermissionsAsJSON (const Permissions *permissions_p, const ViewFormat vf)
 
bool AddUserToPermissions (Permissions *permissions_p, User *user_p)
 
bool AddGroupToPermissions (Permissions *permissions_p, UserGroup *group_p)
 
bool CheckPermissionsManagerForUser (const PermissionsManager *const permissions_manager_p, const User *const user_p, const AccessMode mode)
 
bool CheckPermissionsGroupForUser (const PermissionsGroup *const permissions_manager_p, const User *const user_p, const AccessMode mode)
 
bool CheckPermissionsForUser (const Permissions *const permissions_p, const User *const user_p)
 
bool HasPermissionsSet (const Permissions *const permissions_p)
 
bool SetAccessModeFromString (AccessMode *ar_p, const char *const ar_s)
 
const char * GetAccessRightsAsString (const AccessMode ar)
 

Enumeration Type Documentation

◆ AccessMode

enum AccessMode
Enumerator
AM_NONE 
AM_READ 
AM_WRITE 
AM_DELETE 

Function Documentation

◆ AllocatePermissionsManager()

PermissionsManager* AllocatePermissionsManager ( GrassrootsServer grassroots_p,
const char *  database_s,
const char *  collection_s 
)

◆ FreePermissionsManager()

void FreePermissionsManager ( PermissionsManager manager_p)

◆ AllocatePermissions()

Permissions* AllocatePermissions ( AccessMode  access)

◆ ClearPermissions()

void ClearPermissions ( Permissions permissions_p)

◆ FreePermissions()

void FreePermissions ( Permissions permissions_p)

◆ AllocatePermissionsGroup()

PermissionsGroup* AllocatePermissionsGroup ( void  )

◆ FreePermissionsGroup()

void FreePermissionsGroup ( PermissionsGroup permissions_group_p)

◆ GetPermissionsFromJSON()

Permissions* GetPermissionsFromJSON ( const json_t *  permissions_json_p,
const GrassrootsServer grassroots_p 
)

◆ GetPermissionsGroupFromJSON()

PermissionsGroup* GetPermissionsGroupFromJSON ( const json_t *  permissions_group_json_p,
const GrassrootsServer grassroots_p 
)

◆ GetPermissionsGroupFromChildJSON()

PermissionsGroup* GetPermissionsGroupFromChildJSON ( const json_t *  parent_json_p,
const char *const  key_s,
const GrassrootsServer grassroots_p 
)

◆ GetPermissionsGroupAsJSON()

json_t* GetPermissionsGroupAsJSON ( const PermissionsGroup permissions_group_p,
const ViewFormat  vf 
)

◆ AddPermissionsGroupToJSON()

bool AddPermissionsGroupToJSON ( const PermissionsGroup permissions_group_p,
json_t *  json_p,
const char *const  key_s,
const ViewFormat  vf 
)

◆ GetPermissionsAsJSON()

json_t* GetPermissionsAsJSON ( const Permissions permissions_p,
const ViewFormat  vf 
)

◆ AddUserToPermissions()

bool AddUserToPermissions ( Permissions permissions_p,
User user_p 
)

◆ AddGroupToPermissions()

bool AddGroupToPermissions ( Permissions permissions_p,
UserGroup group_p 
)

◆ CheckPermissionsManagerForUser()

bool CheckPermissionsManagerForUser ( const PermissionsManager *const  permissions_manager_p,
const User *const  user_p,
const AccessMode  mode 
)
Parameters
permissions_manager_p
user_pThe User to check for.
modeThe mode of access to be checked for the given User.
Returns

◆ CheckPermissionsGroupForUser()

bool CheckPermissionsGroupForUser ( const PermissionsGroup *const  permissions_manager_p,
const User *const  user_p,
const AccessMode  mode 
)

◆ CheckPermissionsForUser()

bool CheckPermissionsForUser ( const Permissions *const  permissions_p,
const User *const  user_p 
)

◆ HasPermissionsSet()

bool HasPermissionsSet ( const Permissions *const  permissions_p)

◆ SetAccessModeFromString()

bool SetAccessModeFromString ( AccessMode ar_p,
const char *const  ar_s 
)

◆ GetAccessRightsAsString()

const char* GetAccessRightsAsString ( const AccessMode  ar)