64 lines
2.2 KiB
C
64 lines
2.2 KiB
C
#ifndef H__MODB_GROUPS__
|
|
#define H__MODB_GROUPS__
|
|
|
|
#include "database.h"
|
|
#include "modb_ref.h"
|
|
|
|
|
|
// Group object
|
|
struct group_t {
|
|
unsigned int id;
|
|
|
|
char *name;
|
|
size_t name_len;
|
|
|
|
int64_t created_on;
|
|
int64_t updated_on;
|
|
int64_t deleted_on;
|
|
|
|
unsigned int *member_ids;
|
|
struct user_t **members;
|
|
size_t n_members;
|
|
};
|
|
|
|
struct group_t *allocGroup(void);
|
|
struct group_t **allocGroups(size_t n_groups);
|
|
void freeGroup(struct group_t **group);
|
|
void freeGroups(struct group_t ***groups_ptr, size_t n_groups);
|
|
|
|
|
|
// MODB Groups
|
|
int modbGroupById(stored_conn *sconn, modb_ref *modb, unsigned int id, int with_members,
|
|
struct group_t **group);
|
|
int modbGroupByName(stored_conn *sconn, modb_ref *modb, const char *name, int with_members,
|
|
struct group_t **group);
|
|
|
|
int modbGroupList(stored_conn *sconn, modb_ref *modb, int with_deleted, int with_members,
|
|
struct group_t ***groups, size_t *n_groups);
|
|
|
|
int64_t modbGroupCreate(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int id, const char *name);
|
|
int64_t modbGroupUpdate(stored_conn *sconn, modb_ref *modb, unsigned int id,
|
|
const char *name);
|
|
int modbGroupDelete(stored_conn *sconn, modb_ref *modb, unsigned int id);
|
|
int modbGroupDestroy(stored_conn *sconn, modb_ref *modb, unsigned int id);
|
|
|
|
int modbFetchGroupUserIds(stored_conn *sconn, modb_ref *modb, struct group_t *group);
|
|
int modbFetchGroupUsers(stored_conn *sconn, modb_ref *modb, struct group_t *group,
|
|
int with_deleted);
|
|
|
|
// MODB Groups -> Users
|
|
int modbSyncGroupUsers(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int group_id, size_t n_users, unsigned int *user_id);
|
|
int modbSyncGroupUsers_va(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int group_id, size_t n_users, ...);
|
|
|
|
int modbIsLinked_Group_User(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int group_id, unsigned int user_id);
|
|
int modbLink_Group_User(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int group_id, unsigned int user_id);
|
|
int modbUnlink_Group_User(stored_conn *sconn, modb_ref *modb,
|
|
unsigned int group_id, unsigned int user_id);
|
|
|
|
#endif // H__MODB_GROUPS__
|