1
0
mirror of https://github.com/haiwen/seafile-server.git synced 2025-05-06 07:06:20 +00:00
seafile-server/common/group-mgr.h
2021-09-06 18:20:28 +08:00

162 lines
6.1 KiB
C

/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
#ifndef GROUP_MGR_H
#define GROUP_MGR_H
/* #define MAX_GROUP_MEMBERS 16 */
typedef struct _SeafileSession SeafileSession;
typedef struct _CcnetGroupManager CcnetGroupManager;
typedef struct _CcnetGroupManagerPriv CcnetGroupManagerPriv;
struct _CcnetGroupManager
{
SeafileSession *session;
CcnetGroupManagerPriv *priv;
};
CcnetGroupManager* ccnet_group_manager_new (SeafileSession *session);
int
ccnet_group_manager_prepare (CcnetGroupManager *manager);
void ccnet_group_manager_start (CcnetGroupManager *manager);
int ccnet_group_manager_create_group (CcnetGroupManager *mgr,
const char *group_name,
const char *user_name,
int parent_group_id,
GError **error);
int ccnet_group_manager_create_org_group (CcnetGroupManager *mgr,
int org_id,
const char *group_name,
const char *user_name,
int parent_group_id,
GError **error);
int ccnet_group_manager_remove_group (CcnetGroupManager *mgr,
int group_id,
gboolean remove_anyway,
GError **error);
int ccnet_group_manager_add_member (CcnetGroupManager *mgr,
int group_id,
const char *user_name,
const char *member_name,
GError **error);
int ccnet_group_manager_remove_member (CcnetGroupManager *mgr,
int group_id,
const char *user_name,
const char *member_name,
GError **error);
int ccnet_group_manager_set_admin (CcnetGroupManager *mgr,
int group_id,
const char *member_name,
GError **error);
int ccnet_group_manager_unset_admin (CcnetGroupManager *mgr,
int group_id,
const char *member_name,
GError **error);
int ccnet_group_manager_set_group_name (CcnetGroupManager *mgr,
int group_id,
const char *group_name,
GError **error);
int ccnet_group_manager_quit_group (CcnetGroupManager *mgr,
int group_id,
const char *user_name,
GError **error);
GList *
ccnet_group_manager_get_groups_by_user (CcnetGroupManager *mgr,
const char *user_name,
gboolean return_ancestors,
GError **error);
CcnetGroup *
ccnet_group_manager_get_group (CcnetGroupManager *mgr, int group_id,
GError **error);
GList *
ccnet_group_manager_get_group_members (CcnetGroupManager *mgr,
int group_id,
int start,
int limit,
GError **error);
GList *
ccnet_group_manager_get_members_with_prefix (CcnetGroupManager *mgr,
int group_id,
const char *prefix,
GError **error);
int
ccnet_group_manager_check_group_staff (CcnetGroupManager *mgr,
int group_id,
const char *user_name,
int in_structure);
int
ccnet_group_manager_remove_group_user (CcnetGroupManager *mgr,
const char *user);
int
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
int group_id,
const char *user,
gboolean in_structure);
GList*
ccnet_group_manager_list_all_departments (CcnetGroupManager *mgr,
GError **error);
GList*
ccnet_group_manager_get_all_groups (CcnetGroupManager *mgr,
int start, int limit, GError **error);
int
ccnet_group_manager_set_group_creator (CcnetGroupManager *mgr,
int group_id,
const char *user_name);
GList*
ccnet_group_manager_search_groups (CcnetGroupManager *mgr,
const char *keyword,
int start, int limit);
GList*
ccnet_group_manager_search_group_members (CcnetGroupManager *mgr,
int group_id,
const char *pattern);
GList *
ccnet_group_manager_get_top_groups (CcnetGroupManager *mgr, gboolean including_org, GError **error);
GList *
ccnet_group_manager_get_child_groups (CcnetGroupManager *mgr, int group_id,
GError **error);
GList *
ccnet_group_manager_get_descendants_groups (CcnetGroupManager *mgr, int group_id,
GError **error);
GList *
ccnet_group_manager_get_ancestor_groups (CcnetGroupManager *mgr, int group_id);
GList *
ccnet_group_manager_get_groups_members (CcnetGroupManager *mgr, const char *group_ids,
GError **error);
int
ccnet_group_manager_update_group_user (CcnetGroupManager *mgr,
const char *old_email,
const char *new_email);
#endif /* GROUP_MGR_H */