1
0
mirror of https://github.com/haiwen/ccnet-server.git synced 2025-09-12 12:59:18 +00:00

Add rpc get_org_groups_by_user().

This commit is contained in:
“cuihaikuo”
2017-12-29 11:44:49 +08:00
parent 078d115530
commit 5e0a7395ac
7 changed files with 69 additions and 0 deletions

View File

@@ -91,6 +91,7 @@ GList *ccnet_get_peers_by_role (SearpcClient *client, const char *role);
char *ccnet_get_binding_email (SearpcClient *client, const char *peer_id);
GList *ccnet_get_groups_by_user (SearpcClient *client, const char *user);
GList *ccnet_get_org_groups_by_user (SearpcClient *client, const char *user, int org_id);
GList *
ccnet_get_group_members (SearpcClient *client, int group_id);
int

View File

@@ -191,6 +191,17 @@ ccnet_get_groups_by_user (SearpcClient *client, const char *user)
1, "string", user);
}
GList *
ccnet_get_org_groups_by_user (SearpcClient *client, const char *user, int org_id)
{
if (!user)
return NULL;
return searpc_client_call__objlist (
client, "get_org_groups_by_user", CCNET_TYPE_GROUP, NULL,
2, "string", user, "int", org_id);
}
GList *
ccnet_get_group_members (SearpcClient *client, int group_id)
{

View File

@@ -341,6 +341,10 @@ ccnet_start_rpc(CcnetSession *session)
ccnet_rpc_get_org_groups,
"get_org_groups",
searpc_signature_objlist__int_int_int());
searpc_server_register_function ("ccnet-threaded-rpcserver",
ccnet_rpc_get_org_groups_by_user,
"get_org_groups_by_user",
searpc_signature_objlist__string_int());
searpc_server_register_function ("ccnet-threaded-rpcserver",
ccnet_rpc_org_user_exists,
"org_user_exists",
@@ -1473,6 +1477,23 @@ ccnet_rpc_get_org_groups (int org_id, int start, int limit, GError **error)
return ret;
}
GList *
ccnet_rpc_get_org_groups_by_user (const char *user, int org_id, GError **error)
{
CcnetOrgManager *org_mgr = ((CcnetServerSession *)session)->org_mgr;
GList *ret = NULL;
if (org_id < 0 || !user) {
g_set_error (error, CCNET_DOMAIN, CCNET_ERR_INTERNAL, "Bad arguments");
return NULL;
}
ret = ccnet_org_manager_get_org_groups_by_user (org_mgr, user, org_id);
return ret;
}
int
ccnet_rpc_org_user_exists (int org_id, const char *email, GError **error)
{

View File

@@ -286,6 +286,9 @@ ccnet_rpc_get_org_id_by_group (int group_id, GError **error);
GList *
ccnet_rpc_get_org_groups (int org_id, int start, int limit, GError **error);
GList *
ccnet_rpc_get_org_groups_by_user (const char *user, int org_id, GError **error);
int
ccnet_rpc_org_user_exists (int org_id, const char *email, GError **error);

View File

@@ -663,6 +663,30 @@ ccnet_org_manager_get_org_groups (CcnetOrgManager *mgr,
return g_list_reverse (ret);
}
GList *
ccnet_org_manager_get_org_groups_by_user (CcnetOrgManager *mgr,
const char *user,
int org_id)
{
CcnetDB *db = mgr->priv->db;
char *sql;
GList *ret = NULL;
int rc;
sql = "SELECT g.group_id, group_name, creator_name, timestamp FROM "
"OrgGroup o, `Group` g, GroupUser u "
"WHERE o.group_id = g.group_id AND org_id = ? AND "
"g.group_id = u.group_id AND user_name = ?";
rc = ccnet_db_statement_foreach_row (db,
sql,
get_org_groups, &ret,
2, "int", org_id, "string", user);
if (rc < 0)
return NULL;
return g_list_reverse (ret);
}
int
ccnet_org_manager_org_user_exists (CcnetOrgManager *mgr,
int org_id,

View File

@@ -109,6 +109,11 @@ ccnet_org_manager_get_org_groups (CcnetOrgManager *mgr,
int start,
int limit);
GList *
ccnet_org_manager_get_org_groups_by_user (CcnetOrgManager *mgr,
const char *user,
int org_id);
int
ccnet_org_manager_org_user_exists (CcnetOrgManager *mgr,
int org_id,

View File

@@ -391,6 +391,10 @@ class CcnetThreadedRpcClient(RpcClientBase):
def get_org_groups(self, org_id, start, limit):
pass
@searpc_func("objlist", ["string", "int"])
def get_org_groups_by_user (self, user, org_id):
pass
@searpc_func("int", ["int", "string"])
def org_user_exists(self, org_id, email):
pass