mirror of
https://github.com/haiwen/ccnet-server.git
synced 2025-08-10 08:51:34 +00:00
Update is_group_user().
This commit is contained in:
parent
c095959cce
commit
4a3cfbcb3d
@ -275,7 +275,7 @@ ccnet_start_rpc(CcnetSession *session)
|
|||||||
searpc_server_register_function ("ccnet-threaded-rpcserver",
|
searpc_server_register_function ("ccnet-threaded-rpcserver",
|
||||||
ccnet_rpc_is_group_user,
|
ccnet_rpc_is_group_user,
|
||||||
"is_group_user",
|
"is_group_user",
|
||||||
searpc_signature_int__int_string());
|
searpc_signature_int__int_string_int());
|
||||||
searpc_server_register_function ("ccnet-threaded-rpcserver",
|
searpc_server_register_function ("ccnet-threaded-rpcserver",
|
||||||
ccnet_rpc_set_group_creator,
|
ccnet_rpc_set_group_creator,
|
||||||
"set_group_creator",
|
"set_group_creator",
|
||||||
@ -1248,7 +1248,7 @@ ccnet_rpc_remove_group_user (const char *user, GError **error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ccnet_rpc_is_group_user (int group_id, const char *user, GError **error)
|
ccnet_rpc_is_group_user (int group_id, const char *user, int in_structure, GError **error)
|
||||||
{
|
{
|
||||||
CcnetGroupManager *group_mgr = ((CcnetServerSession *)session)->group_mgr;
|
CcnetGroupManager *group_mgr = ((CcnetServerSession *)session)->group_mgr;
|
||||||
if (!user || group_id < 0) {
|
if (!user || group_id < 0) {
|
||||||
@ -1256,7 +1256,7 @@ ccnet_rpc_is_group_user (int group_id, const char *user, GError **error)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ccnet_group_manager_is_group_user (group_mgr, group_id, user);
|
return ccnet_group_manager_is_group_user (group_mgr, group_id, user, in_structure ? TRUE : FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -241,7 +241,7 @@ int
|
|||||||
ccnet_rpc_remove_group_user (const char *user, GError **error);
|
ccnet_rpc_remove_group_user (const char *user, GError **error);
|
||||||
|
|
||||||
int
|
int
|
||||||
ccnet_rpc_is_group_user (int group_id, const char *user, GError **error);
|
ccnet_rpc_is_group_user (int group_id, const char *user, int in_structure, GError **error);
|
||||||
|
|
||||||
int
|
int
|
||||||
ccnet_rpc_set_group_creator (int group_id, const char *user_name,
|
ccnet_rpc_set_group_creator (int group_id, const char *user_name,
|
||||||
|
@ -958,13 +958,35 @@ ccnet_group_manager_remove_group_user (CcnetGroupManager *mgr,
|
|||||||
int
|
int
|
||||||
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
|
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
|
||||||
int group_id,
|
int group_id,
|
||||||
const char *user)
|
const char *user,
|
||||||
|
gboolean in_structure)
|
||||||
{
|
{
|
||||||
CcnetDB *db = mgr->priv->db;
|
CcnetDB *db = mgr->priv->db;
|
||||||
|
|
||||||
return ccnet_db_statement_exists (db, "SELECT group_id FROM GroupUser "
|
gboolean exists = ccnet_db_statement_exists (db, "SELECT group_id FROM GroupUser "
|
||||||
"WHERE group_id=? AND user_name=?",
|
"WHERE group_id=? AND user_name=?",
|
||||||
2, "int", group_id, "string", user);
|
2, "int", group_id, "string", user);
|
||||||
|
if (!in_structure || exists)
|
||||||
|
return exists ? 1 : 0;
|
||||||
|
|
||||||
|
GList *ptr;
|
||||||
|
GList *groups = ccnet_group_manager_get_groups_by_user (mgr, user, TRUE, NULL);
|
||||||
|
if (!groups)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
CcnetGroup *group;
|
||||||
|
int id;
|
||||||
|
for (ptr = groups; ptr; ptr = ptr->next) {
|
||||||
|
group = ptr->data;
|
||||||
|
g_object_get (group, "id", &id, NULL);
|
||||||
|
if (group_id == id) {
|
||||||
|
exists = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_list_free_full (groups, g_object_unref);
|
||||||
|
|
||||||
|
return exists ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -100,7 +100,8 @@ ccnet_group_manager_remove_group_user (CcnetGroupManager *mgr,
|
|||||||
int
|
int
|
||||||
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
|
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
|
||||||
int group_id,
|
int group_id,
|
||||||
const char *user);
|
const char *user,
|
||||||
|
gboolean in_structure);
|
||||||
|
|
||||||
GList*
|
GList*
|
||||||
ccnet_group_manager_get_all_groups (CcnetGroupManager *mgr,
|
ccnet_group_manager_get_all_groups (CcnetGroupManager *mgr,
|
||||||
|
@ -331,8 +331,8 @@ class CcnetThreadedRpcClient(RpcClientBase):
|
|||||||
def remove_group_user(self, username):
|
def remove_group_user(self, username):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@searpc_func("int", ["int", "string"])
|
@searpc_func("int", ["int", "string", "int"])
|
||||||
def is_group_user(self, group_id, user):
|
def is_group_user(self, group_id, user, in_structure):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@searpc_func("int", ["int", "string"])
|
@searpc_func("int", ["int", "string"])
|
||||||
|
Loading…
Reference in New Issue
Block a user