mirror of
https://github.com/haiwen/seafile-server.git
synced 2025-09-19 18:16:25 +00:00
Return group_name in get_group_repos_by_user().
This commit is contained in:
@@ -96,6 +96,7 @@ public class Repo : Object {
|
|||||||
public string permission { get; set; }
|
public string permission { get; set; }
|
||||||
public string user { get; set; } // share from or share to
|
public string user { get; set; } // share from or share to
|
||||||
public int group_id { get; set; } // used when shared to group
|
public int group_id { get; set; } // used when shared to group
|
||||||
|
public string group_name { get; set; } // used when shared to group
|
||||||
|
|
||||||
// For list_owned_repo
|
// For list_owned_repo
|
||||||
public bool is_shared { get; set; }
|
public bool is_shared { get; set; }
|
||||||
|
@@ -4010,8 +4010,9 @@ seaf_get_group_repos_by_user (SeafRepoManager *mgr,
|
|||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
CcnetGroup *group;
|
CcnetGroup *group;
|
||||||
GList *groups = NULL, *p;
|
GList *groups = NULL, *p, *q;
|
||||||
GList *repos = NULL;
|
GList *repos = NULL;
|
||||||
|
SeafileRepo *repo = NULL;
|
||||||
SearpcClient *rpc_client;
|
SearpcClient *rpc_client;
|
||||||
GString *sql = NULL;
|
GString *sql = NULL;
|
||||||
int group_id = 0;
|
int group_id = 0;
|
||||||
@@ -4035,7 +4036,8 @@ seaf_get_group_repos_by_user (SeafRepoManager *mgr,
|
|||||||
sql = g_string_new ("");
|
sql = g_string_new ("");
|
||||||
g_string_printf (sql, "SELECT g.repo_id, v.repo_id, "
|
g_string_printf (sql, "SELECT g.repo_id, v.repo_id, "
|
||||||
"group_id, %s, permission, commit_id, s.size, "
|
"group_id, %s, permission, commit_id, s.size, "
|
||||||
"v.origin_repo, v.path "
|
"v.origin_repo, v.path, "
|
||||||
|
"(SELECT name FROM RepoInfo WHERE repo_id=v.origin_repo)"
|
||||||
"FROM %s g LEFT JOIN VirtualRepo v ON "
|
"FROM %s g LEFT JOIN VirtualRepo v ON "
|
||||||
"g.repo_id = v.repo_id "
|
"g.repo_id = v.repo_id "
|
||||||
"LEFT JOIN RepoSize s ON g.repo_id = s.repo_id, "
|
"LEFT JOIN RepoSize s ON g.repo_id = s.repo_id, "
|
||||||
@@ -4064,6 +4066,31 @@ seaf_get_group_repos_by_user (SeafRepoManager *mgr,
|
|||||||
seaf_warning ("Failed to get user[%s] group repos from db.\n", user);
|
seaf_warning ("Failed to get user[%s] group repos from db.\n", user);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int repo_group_id = 0;
|
||||||
|
char *group_name = NULL;
|
||||||
|
groups = g_list_reverse (groups);
|
||||||
|
q = repos;
|
||||||
|
|
||||||
|
/* Add group_name to repo. Both groups and repos are listed by group_id in descending order */
|
||||||
|
for (p = groups; p; p = p->next) {
|
||||||
|
group = p->data;
|
||||||
|
g_object_get (group, "id", &group_id, NULL);
|
||||||
|
g_object_get (group, "group_name", &group_name, NULL);
|
||||||
|
|
||||||
|
for (; q; q = q->next) {
|
||||||
|
repo = q->data;
|
||||||
|
g_object_get (repo, "group_id", &repo_group_id, NULL);
|
||||||
|
if (repo_group_id == group_id)
|
||||||
|
g_object_set (repo, "group_name", group_name, NULL);
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
g_free (group_name);
|
||||||
|
if (q == NULL)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
seaf_fill_repo_obj_from_commit (&repos);
|
seaf_fill_repo_obj_from_commit (&repos);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
Reference in New Issue
Block a user