mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-05-06 07:06:20 +00:00
162 lines
6.1 KiB
C
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 */
|
|
|