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:
@@ -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
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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,
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user