Compare commits
3 commits
master
...
ret_db_err
Author | SHA1 | Date | |
---|---|---|---|
|
c9f66ea7a3 | ||
|
c63bcc4f45 | ||
|
9e3242d948 |
10 changed files with 39 additions and 49 deletions
|
@ -27,8 +27,6 @@
|
|||
#define DEBUG_FLAG SEAFILE_DEBUG_OTHER
|
||||
#include "log.h"
|
||||
|
||||
#define CCNET_ERR_INTERNAL 500
|
||||
|
||||
#ifndef SEAFILE_SERVER
|
||||
#include "../daemon/vc-utils.h"
|
||||
|
||||
|
@ -4645,22 +4643,6 @@ seafile_search_files_by_path (const char *repo_id, const char *path, const char
|
|||
return g_list_reverse (ret);
|
||||
}
|
||||
|
||||
char *
|
||||
seafile_generate_notif_server_jwt (const char *repo_id, const char *username, GError **error)
|
||||
{
|
||||
if (!repo_id || !username) {
|
||||
g_set_error (error, SEAFILE_DOMAIN, SEAF_ERR_BAD_ARGS, "Argument should not be null");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *token = seaf_gen_notif_server_jwt (repo_id, username);
|
||||
if (!token) {
|
||||
g_set_error (error, SEAFILE_DOMAIN, SEAF_ERR_INTERNAL,
|
||||
"Failed to generate jwt token");
|
||||
}
|
||||
return token;
|
||||
}
|
||||
|
||||
/*RPC functions merged from ccnet-server*/
|
||||
int
|
||||
ccnet_rpc_add_emailuser (const char *email, const char *passwd,
|
||||
|
@ -4726,7 +4708,7 @@ ccnet_rpc_get_emailuser (const char *email, GError **error)
|
|||
CcnetUserManager *user_mgr = seaf->user_mgr;
|
||||
CcnetEmailUser *emailuser = NULL;
|
||||
|
||||
emailuser = ccnet_user_manager_get_emailuser (user_mgr, email);
|
||||
emailuser = ccnet_user_manager_get_emailuser (user_mgr, email, error);
|
||||
|
||||
return (GObject *)emailuser;
|
||||
}
|
||||
|
@ -4742,7 +4724,7 @@ ccnet_rpc_get_emailuser_with_import (const char *email, GError **error)
|
|||
CcnetUserManager *user_mgr = seaf->user_mgr;
|
||||
CcnetEmailUser *emailuser = NULL;
|
||||
|
||||
emailuser = ccnet_user_manager_get_emailuser_with_import (user_mgr, email);
|
||||
emailuser = ccnet_user_manager_get_emailuser_with_import (user_mgr, email, error);
|
||||
|
||||
return (GObject *)emailuser;
|
||||
}
|
||||
|
@ -5448,7 +5430,7 @@ ccnet_rpc_get_org_emailusers (const char *url_prefix, int start , int limit,
|
|||
while (ptr) {
|
||||
char *email = ptr->data;
|
||||
CcnetEmailUser *emailuser = ccnet_user_manager_get_emailuser (user_mgr,
|
||||
email);
|
||||
email, NULL);
|
||||
if (emailuser != NULL) {
|
||||
ret = g_list_prepend (ret, emailuser);
|
||||
}
|
||||
|
|
|
@ -1147,26 +1147,41 @@ get_ldap_emailuser_cb (CcnetDBRow *row, void *data)
|
|||
static CcnetEmailUser*
|
||||
get_emailuser (CcnetUserManager *manager,
|
||||
const char *email,
|
||||
gboolean import)
|
||||
gboolean import,
|
||||
GError **error)
|
||||
{
|
||||
CcnetDB *db = manager->priv->db;
|
||||
char *sql;
|
||||
CcnetEmailUser *emailuser = NULL;
|
||||
char *email_down;
|
||||
int rc;
|
||||
|
||||
sql = "SELECT e.id, e.email, is_staff, is_active, ctime, passwd, reference_id, role "
|
||||
" FROM EmailUser e LEFT JOIN UserRole ON e.email = UserRole.email "
|
||||
" WHERE e.email=?";
|
||||
if (seaf_db_statement_foreach_row (db, sql, get_emailuser_cb, &emailuser,
|
||||
1, "string", email) > 0) {
|
||||
rc = seaf_db_statement_foreach_row (db, sql, get_emailuser_cb, &emailuser,
|
||||
1, "string", email);
|
||||
if (rc > 0) {
|
||||
return emailuser;
|
||||
} else if (rc < 0) {
|
||||
if (error) {
|
||||
g_set_error (error, CCNET_DOMAIN, CCNET_ERR_INTERNAL, "Database error");
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
email_down = g_ascii_strdown (email, strlen(email));
|
||||
if (seaf_db_statement_foreach_row (db, sql, get_emailuser_cb, &emailuser,
|
||||
1, "string", email_down) > 0) {
|
||||
rc = seaf_db_statement_foreach_row (db, sql, get_emailuser_cb, &emailuser,
|
||||
1, "string", email_down);
|
||||
if (rc > 0) {
|
||||
g_free (email_down);
|
||||
return emailuser;
|
||||
} else if (rc < 0) {
|
||||
if (error) {
|
||||
g_set_error (error, CCNET_DOMAIN, CCNET_ERR_INTERNAL, "Database error");
|
||||
}
|
||||
g_free (email_down);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LDAP
|
||||
|
@ -1179,6 +1194,9 @@ get_emailuser (CcnetUserManager *manager,
|
|||
get_ldap_emailuser_cb,
|
||||
&emailuser, 1, "string", email_down);
|
||||
if (ret < 0) {
|
||||
if (error) {
|
||||
g_set_error (error, CCNET_DOMAIN, CCNET_ERR_INTERNAL, "Database error");
|
||||
}
|
||||
ccnet_warning ("get ldapuser from db failed.\n");
|
||||
g_free (email_down);
|
||||
return NULL;
|
||||
|
@ -1236,16 +1254,18 @@ get_emailuser (CcnetUserManager *manager,
|
|||
|
||||
CcnetEmailUser*
|
||||
ccnet_user_manager_get_emailuser (CcnetUserManager *manager,
|
||||
const char *email)
|
||||
const char *email,
|
||||
GError **error)
|
||||
{
|
||||
return get_emailuser (manager, email, FALSE);
|
||||
return get_emailuser (manager, email, FALSE, error);
|
||||
}
|
||||
|
||||
CcnetEmailUser*
|
||||
ccnet_user_manager_get_emailuser_with_import (CcnetUserManager *manager,
|
||||
const char *email)
|
||||
const char *email,
|
||||
GError **error)
|
||||
{
|
||||
return get_emailuser (manager, email, TRUE);
|
||||
return get_emailuser (manager, email, TRUE, error);
|
||||
}
|
||||
|
||||
CcnetEmailUser*
|
||||
|
|
|
@ -84,11 +84,12 @@ ccnet_user_manager_validate_emailuser (CcnetUserManager *manager,
|
|||
const char *passwd);
|
||||
|
||||
CcnetEmailUser*
|
||||
ccnet_user_manager_get_emailuser (CcnetUserManager *manager, const char *email);
|
||||
ccnet_user_manager_get_emailuser (CcnetUserManager *manager, const char *email, GError **error);
|
||||
|
||||
CcnetEmailUser*
|
||||
ccnet_user_manager_get_emailuser_with_import (CcnetUserManager *manager,
|
||||
const char *email);
|
||||
const char *email,
|
||||
GError **error);
|
||||
CcnetEmailUser*
|
||||
ccnet_user_manager_get_emailuser_by_id (CcnetUserManager *manager, int id);
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ static int getattr_user(SeafileSession *seaf, const char *user, struct stat *stb
|
|||
{
|
||||
CcnetEmailUser *emailuser;
|
||||
|
||||
emailuser = ccnet_user_manager_get_emailuser (seaf->user_mgr, user);
|
||||
emailuser = ccnet_user_manager_get_emailuser (seaf->user_mgr, user, NULL);
|
||||
if (!emailuser) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ static int readdir_user(SeafileSession *seaf, const char *user,
|
|||
GList *list = NULL, *p;
|
||||
GString *name;
|
||||
|
||||
emailuser = ccnet_user_manager_get_emailuser (seaf->user_mgr, user);
|
||||
emailuser = ccnet_user_manager_get_emailuser (seaf->user_mgr, user, NULL);
|
||||
if (!emailuser) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
|
|
@ -1155,9 +1155,6 @@ seafile_search_files (const char *repo_id, const char *str, GError **error);
|
|||
GList *
|
||||
seafile_search_files_by_path (const char *repo_id, const char *path, const char *str, GError **error);
|
||||
|
||||
char *
|
||||
seafile_generate_notif_server_jwt (const char *repo_id, const char *username, GError **error);
|
||||
|
||||
/*Following is ccnet rpc*/
|
||||
int
|
||||
ccnet_rpc_add_emailuser (const char *email, const char *passwd,
|
||||
|
|
|
@ -148,6 +148,8 @@ traverse_directory_win32 (wchar_t *path_w,
|
|||
|
||||
#define CCNET_DOMAIN g_quark_from_string("ccnet")
|
||||
|
||||
#define CCNET_ERR_INTERNAL 500
|
||||
|
||||
|
||||
struct timeval timeval_from_msec (uint64_t milliseconds);
|
||||
|
||||
|
|
|
@ -826,10 +826,6 @@ class SeafServerThreadedRpcClient(NamedPipeClient):
|
|||
def search_files_by_path(self, repo_id, path, search_str):
|
||||
pass
|
||||
|
||||
@searpc_func("string", ["string", "string"])
|
||||
def generate_notif_server_jwt(self, repo_id, username):
|
||||
pass
|
||||
|
||||
#user management
|
||||
@searpc_func("int", ["string", "string", "int", "int"])
|
||||
def add_emailuser(self, email, passwd, is_staff, is_active):
|
||||
|
|
|
@ -862,9 +862,6 @@ class SeafileAPI(object):
|
|||
def search_files_by_path (self, repo_id, path, search_str):
|
||||
return seafserv_threaded_rpc.search_files_by_path(repo_id, path, search_str)
|
||||
|
||||
def gen_notif_server_jwt (self, repo_id, username):
|
||||
return seafserv_threaded_rpc.generate_notif_server_jwt (repo_id, username)
|
||||
|
||||
seafile_api = SeafileAPI()
|
||||
|
||||
class CcnetAPI(object):
|
||||
|
|
|
@ -355,11 +355,6 @@ static void start_rpc_service (const char *seafile_dir,
|
|||
"search_files_by_path",
|
||||
searpc_signature_objlist__string_string_string());
|
||||
|
||||
searpc_server_register_function ("seafserv-threaded-rpcserver",
|
||||
seafile_generate_notif_server_jwt,
|
||||
"generate_notif_server_jwt",
|
||||
searpc_signature_string__string_string());
|
||||
|
||||
/* share repo to user */
|
||||
searpc_server_register_function ("seafserv-threaded-rpcserver",
|
||||
seafile_add_share,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue