diff --git a/media/assets/scripts/app/views/folder-perm.js b/media/assets/scripts/app/views/folder-perm.js index 76afdecbf3..7e4ee4171e 100644 --- a/media/assets/scripts/app/views/folder-perm.js +++ b/media/assets/scripts/app/views/folder-perm.js @@ -92,7 +92,7 @@ define([ $('[name="email"]', $add_user_perm).select2(Common.contactInputOptionsForSelect2()); // use select2 to 'group' input in 'add group perm' - var groups = app.pageOptions.groups || [], + var groups = app.pageOptions.joined_groups_exclude_address_book || [], g_opts = ''; for (var i = 0, len = groups.length; i < len; i++) { g_opts += ''; diff --git a/media/assets/scripts/app/views/share.js b/media/assets/scripts/app/views/share.js index 870ed0c51f..01d6b4c96f 100644 --- a/media/assets/scripts/app/views/share.js +++ b/media/assets/scripts/app/views/share.js @@ -466,7 +466,7 @@ define([ width: '400px' },Common.contactInputOptionsForSelect2())); - var groups = app.pageOptions.groups || []; + var groups = app.pageOptions.joined_groups_exclude_address_book || []; var g_opts = ''; for (var i = 0, len = groups.length; i < len; i++) { g_opts += ''; diff --git a/seahub/api2/endpoints/shareable_groups.py b/seahub/api2/endpoints/shareable_groups.py index aed4313f5a..c0f28215da 100644 --- a/seahub/api2/endpoints/shareable_groups.py +++ b/seahub/api2/endpoints/shareable_groups.py @@ -54,6 +54,6 @@ class ShareableGroups(APIView): avatar_size = GROUP_AVATAR_DEFAULT_SIZE result = [get_group_info(request, g.id, avatar_size) - for g in groups] + for g in groups if g.parent_group_id == 0] return Response(result) diff --git a/seahub/templates/libraries.html b/seahub/templates/libraries.html index 0cbdc0fff7..aa1deb94b6 100644 --- a/seahub/templates/libraries.html +++ b/seahub/templates/libraries.html @@ -224,6 +224,13 @@ app["pageOptions"] = { {% endfor %} return groups; })(), + joined_groups_exclude_address_book: (function () { + var groups = []; + {% for group in joined_groups_exclude_address_book %} + groups.push({'name': '{{group.group_name}}', 'id': '{{group.id}}'}); + {% endfor %} + return groups; + })(), library_templates: (function () { var templates = []; {% for template in library_templates %} diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index 1f06969b46..2b0b4ec231 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -23,7 +23,7 @@ import seaserv from seaserv import get_repo, get_commits, \ seafserv_threaded_rpc, seafserv_rpc, is_repo_owner, \ get_file_size, MAX_DOWNLOAD_DIR_SIZE, \ - seafile_api + seafile_api, ccnet_api from pysearpc import SearpcError from seahub.avatar.util import get_avatar_file_storage @@ -694,7 +694,7 @@ def libraries(request): org_id = request.user.org.org_id joined_groups = seaserv.get_org_groups_by_user(org_id, username) else: - joined_groups = seaserv.get_personal_groups_by_user(username) + joined_groups = ccnet_api.get_groups(username, return_ancestors=True) if joined_groups: try: @@ -703,6 +703,9 @@ def libraries(request): logger.error(e) joined_groups = [] + joined_groups_exclude_address_book = [item for item in joined_groups if + item.parent_group_id == 0] + return render(request, 'libraries.html', { "allow_public_share": allow_public_share, "guide_enabled": guide_enabled, @@ -723,6 +726,7 @@ def libraries(request): 'file_audit_enabled': FILE_AUDIT_ENABLED, 'can_add_pub_repo': can_add_pub_repo, 'joined_groups': joined_groups, + 'joined_groups_exclude_address_book': joined_groups_exclude_address_book, 'storages': get_library_storages(request), 'unread_notifications_request_interval': UNREAD_NOTIFICATIONS_REQUEST_INTERVAL, 'library_templates': LIBRARY_TEMPLATES.keys() if \ diff --git a/static/scripts/app/views/dialogs/repo-folder-perm-admin.js b/static/scripts/app/views/dialogs/repo-folder-perm-admin.js index 4b3c8a7d3c..92fd2a2eff 100644 --- a/static/scripts/app/views/dialogs/repo-folder-perm-admin.js +++ b/static/scripts/app/views/dialogs/repo-folder-perm-admin.js @@ -102,7 +102,7 @@ define([ placeholder: gettext("Search user or enter email and press Enter") // to override 'placeholder' returned by `Common.conta...` })); } else { - var groups = app.pageOptions.groups || []; + var groups = app.pageOptions.joined_groups_exclude_address_book || []; var g_opts = ''; for (var i = 0, len = groups.length; i < len; i++) { g_opts += ''; diff --git a/static/scripts/app/views/folder-perm.js b/static/scripts/app/views/folder-perm.js index 91845b17bc..b12cb2ceae 100644 --- a/static/scripts/app/views/folder-perm.js +++ b/static/scripts/app/views/folder-perm.js @@ -103,7 +103,7 @@ define([ $('[name="email"]', this.$add_user_perm).select2(Common.contactInputOptionsForSelect2()); // use select2 to 'group' input in 'add group perm' - var groups = app.pageOptions.groups || [], + var groups = app.pageOptions.joined_groups_exclude_address_book || [], g_opts = ''; for (var i = 0, len = groups.length; i < len; i++) { g_opts += ''; diff --git a/static/scripts/app/views/share.js b/static/scripts/app/views/share.js index c488c9b884..fad103cd66 100644 --- a/static/scripts/app/views/share.js +++ b/static/scripts/app/views/share.js @@ -714,7 +714,7 @@ define([ } }); } else { - groups = app.pageOptions.groups || []; + groups = app.pageOptions.joined_groups_exclude_address_book || []; prepareGroupsSelector(); $table.removeClass('hide'); }