1
0
mirror of https://github.com/haiwen/ccnet-server.git synced 2025-07-18 07:21:04 +00:00
ccnet-server/net/server/group-mgr.h

146 lines
5.4 KiB
C
Raw Normal View History

2016-08-18 09:39:55 +00:00
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
#ifndef GROUP_MGR_H
#define GROUP_MGR_H
#include "../common/session.h"
/* #define MAX_GROUP_MEMBERS 16 */
typedef struct _CcnetGroupManager CcnetGroupManager;
typedef struct _CcnetGroupManagerPriv CcnetGroupManagerPriv;
struct _CcnetGroupManager
{
CcnetSession *session;
CcnetGroupManagerPriv *priv;
};
CcnetGroupManager* ccnet_group_manager_new (CcnetSession *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,
2018-03-17 07:16:30 +00:00
int parent_group_id,
2016-08-18 09:39:55 +00:00
GError **error);
int ccnet_group_manager_create_org_group (CcnetGroupManager *mgr,
int org_id,
const char *group_name,
const char *user_name,
2018-03-17 07:16:30 +00:00
int parent_group_id,
2016-08-18 09:39:55 +00:00
GError **error);
int ccnet_group_manager_remove_group (CcnetGroupManager *mgr,
int group_id,
2018-03-17 07:16:30 +00:00
gboolean remove_anyway,
2016-08-18 09:39:55 +00:00
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,
2018-03-17 07:16:30 +00:00
gboolean return_ancestors,
GError **error);
2016-08-18 09:39:55 +00:00
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,
GError **error);
GList *
ccnet_group_manager_get_members_with_prefix (CcnetGroupManager *mgr,
int group_id,
const char *prefix,
GError **error);
2016-08-18 09:39:55 +00:00
int
ccnet_group_manager_check_group_staff (CcnetGroupManager *mgr,
int group_id,
const char *user_name,
int in_structure);
2016-08-18 09:39:55 +00:00
int
ccnet_group_manager_remove_group_user (CcnetGroupManager *mgr,
const char *user);
int
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
int group_id,
2018-05-08 06:02:52 +00:00
const char *user,
gboolean in_structure);
2016-08-18 09:39:55 +00:00
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);
2017-01-17 07:15:52 +00:00
GList*
ccnet_group_manager_search_groups (CcnetGroupManager *mgr,
const char *keyword,
int start, int limit);
2018-03-17 07:16:30 +00:00
GList *
ccnet_group_manager_get_top_groups (CcnetGroupManager *mgr, gboolean including_org, GError **error);
2018-03-17 07:16:30 +00:00
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);
2018-03-17 07:16:30 +00:00
GList *
ccnet_group_manager_get_ancestor_groups (CcnetGroupManager *mgr, int group_id);
2018-07-19 06:55:56 +00:00
GList *
ccnet_group_manager_get_groups_members (CcnetGroupManager *mgr, const char *group_ids,
GError **error);
2016-08-18 09:39:55 +00:00
#endif /* GROUP_MGR_H */