mirror of
https://github.com/haiwen/ccnet-server.git
synced 2025-04-27 18:25:06 +00:00
Add list all departments api.
This commit is contained in:
parent
0289c20b08
commit
81d9ecfa12
@ -252,6 +252,10 @@ ccnet_start_rpc(CcnetSession *session)
|
||||
ccnet_rpc_get_groups,
|
||||
"get_groups",
|
||||
searpc_signature_objlist__string_int());
|
||||
searpc_server_register_function ("ccnet-threaded-rpcserver",
|
||||
ccnet_rpc_list_all_departments,
|
||||
"list_all_departments",
|
||||
searpc_signature_objlist__void());
|
||||
searpc_server_register_function ("ccnet-threaded-rpcserver",
|
||||
ccnet_rpc_get_all_groups,
|
||||
"get_all_groups",
|
||||
@ -1200,6 +1204,18 @@ ccnet_rpc_get_groups (const char *username, int return_ancestors, GError **error
|
||||
return ret;
|
||||
}
|
||||
|
||||
GList *
|
||||
ccnet_rpc_list_all_departments (GError **error)
|
||||
{
|
||||
CcnetGroupManager *group_mgr =
|
||||
((CcnetServerSession *)session)->group_mgr;
|
||||
GList *ret = NULL;
|
||||
|
||||
ret = ccnet_group_manager_list_all_departments (group_mgr, error);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
GList *
|
||||
ccnet_rpc_get_all_groups (int start, int limit,
|
||||
const char *source, GError **error)
|
||||
|
@ -215,6 +215,9 @@ ccnet_rpc_quit_group (int group_id, const char *user_name, GError **error);
|
||||
GList *
|
||||
ccnet_rpc_get_groups (const char *username, int return_ancestors, GError **error);
|
||||
|
||||
GList *
|
||||
ccnet_rpc_list_all_departments (GError **error);
|
||||
|
||||
GList *
|
||||
ccnet_rpc_get_all_groups (int start, int limit, const char *source, GError **error);
|
||||
|
||||
|
@ -1187,6 +1187,41 @@ ccnet_group_manager_get_top_groups (CcnetGroupManager *mgr,
|
||||
return g_list_reverse (ret);
|
||||
}
|
||||
|
||||
GList*
|
||||
ccnet_group_manager_list_all_departments (CcnetGroupManager *mgr,
|
||||
GError **error)
|
||||
{
|
||||
CcnetDB *db = mgr->priv->db;
|
||||
GList *ret = NULL;
|
||||
GString *sql = g_string_new ("");
|
||||
const char *table_name = mgr->priv->table_name;
|
||||
int rc;
|
||||
int db_type = ccnet_db_type(db);
|
||||
|
||||
if (db_type == CCNET_DB_TYPE_PGSQL) {
|
||||
g_string_printf (sql, "SELECT group_id, group_name, "
|
||||
"creator_name, timestamp, type, "
|
||||
"parent_group_id FROM \"%s\" "
|
||||
"WHERE parent_group_id = -1 OR parent_group_id > 0 "
|
||||
"ORDER BY group_id", table_name);
|
||||
rc = ccnet_db_statement_foreach_row (db, sql->str,
|
||||
get_all_ccnetgroups_cb, &ret, 0);
|
||||
} else {
|
||||
g_string_printf (sql, "SELECT `group_id`, `group_name`, "
|
||||
"`creator_name`, `timestamp`, `type`, `parent_group_id` FROM `%s` "
|
||||
"WHERE parent_group_id = -1 OR parent_group_id > 0 "
|
||||
"ORDER BY group_id", table_name);
|
||||
rc = ccnet_db_statement_foreach_row (db, sql->str,
|
||||
get_all_ccnetgroups_cb, &ret, 0);
|
||||
}
|
||||
g_string_free (sql, TRUE);
|
||||
|
||||
if (rc < 0)
|
||||
return NULL;
|
||||
|
||||
return g_list_reverse (ret);
|
||||
}
|
||||
|
||||
GList*
|
||||
ccnet_group_manager_get_all_groups (CcnetGroupManager *mgr,
|
||||
int start, int limit, GError **error)
|
||||
|
@ -110,6 +110,10 @@ ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
|
||||
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);
|
||||
|
@ -299,6 +299,10 @@ class CcnetThreadedRpcClient(RpcClientBase):
|
||||
def get_groups(self, user_name, return_ancestors):
|
||||
pass
|
||||
|
||||
@searpc_func("objlist", [])
|
||||
def list_all_departments(self):
|
||||
pass
|
||||
|
||||
@searpc_func("objlist", ["int", "int", "string"])
|
||||
def get_all_groups(self, start, limit, source):
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user