mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 15:19:06 +00:00
Clean public library related code
This commit is contained in:
@@ -212,8 +212,6 @@
|
||||
app["pageOptions"] = {
|
||||
site_root: "{{ SITE_ROOT }}",
|
||||
csrfToken: "{{ csrf_token }}",
|
||||
reposUrl: "{% url 'api2-repos' %}",
|
||||
pubReposUrl: "{% url 'api2-pub-repos' %}",
|
||||
groups: (function () {
|
||||
var groups = [];
|
||||
{% for group in request.user.joined_groups %}
|
||||
|
@@ -178,10 +178,6 @@ urlpatterns = patterns(
|
||||
|
||||
url(r'^ajax/unset-inner-pub-repo/(?P<repo_id>[-0-9a-f]{36})/$', ajax_unset_inner_pub_repo, name='ajax_unset_inner_pub_repo'),
|
||||
|
||||
### Organizaion ###
|
||||
url(r'^pubinfo/libraries/$', pubrepo, name='pubrepo'),
|
||||
url(r'^ajax/publicrepo/create/$', public_repo_create, name='public_repo_create'),
|
||||
url(r'^pubinfo/users/$', pubuser, name='pubuser'),
|
||||
|
||||
### Apps ###
|
||||
(r'^api2/', include('seahub.api2.urls')),
|
||||
|
@@ -1232,125 +1232,6 @@ def list_inner_pub_repos(request):
|
||||
|
||||
return []
|
||||
|
||||
@login_required
|
||||
def pubrepo(request):
|
||||
"""
|
||||
Show public libraries.
|
||||
"""
|
||||
if not request.user.permissions.can_view_org():
|
||||
raise Http404
|
||||
|
||||
username = request.user.username
|
||||
|
||||
if request.cloud_mode and request.user.org is not None:
|
||||
org_id = request.user.org.org_id
|
||||
public_repos = seaserv.list_org_inner_pub_repos(org_id, username)
|
||||
for r in public_repos:
|
||||
if r.user == username:
|
||||
r.share_from_me = True
|
||||
return render_to_response('organizations/pubrepo.html', {
|
||||
'public_repos': public_repos,
|
||||
'create_shared_repo': True,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
if not request.cloud_mode:
|
||||
public_repos = seaserv.list_inner_pub_repos(username)
|
||||
for r in public_repos:
|
||||
if r.user == username:
|
||||
r.share_from_me = True
|
||||
return render_to_response('pubrepo.html', {
|
||||
'public_repos': public_repos,
|
||||
'create_shared_repo': True,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
raise Http404
|
||||
|
||||
def get_pub_users(request, start, limit):
|
||||
if is_org_context(request):
|
||||
url_prefix = request.user.org.url_prefix
|
||||
users_plus_one = seaserv.get_org_users_by_url_prefix(url_prefix,
|
||||
start, limit)
|
||||
|
||||
elif request.cloud_mode:
|
||||
raise Http404 # no pubuser in cloud mode
|
||||
|
||||
else:
|
||||
users_plus_one = seaserv.get_emailusers('DB', start,
|
||||
limit, is_active=True)
|
||||
return users_plus_one
|
||||
|
||||
def count_pub_users(request):
|
||||
if is_org_context(request):
|
||||
url_prefix = request.user.org.url_prefix
|
||||
# TODO: need a new api to count org users.
|
||||
org_users = seaserv.get_org_users_by_url_prefix(url_prefix, -1, -1)
|
||||
return len(org_users)
|
||||
elif request.cloud_mode:
|
||||
return 0
|
||||
else:
|
||||
return seaserv.ccnet_threaded_rpc.count_emailusers('DB')
|
||||
|
||||
@login_required
|
||||
def pubuser(request):
|
||||
"""
|
||||
Show public users in database or ldap depending on request arg ``ldap``.
|
||||
"""
|
||||
if not request.user.permissions.can_view_org():
|
||||
raise Http404
|
||||
|
||||
# Make sure page request is an int. If not, deliver first page.
|
||||
try:
|
||||
current_page = int(request.GET.get('page', '1'))
|
||||
except ValueError:
|
||||
current_page = 1
|
||||
per_page = 20 # show 20 users per-page
|
||||
|
||||
# Show LDAP users or Database users.
|
||||
have_ldap_user = False
|
||||
if len(seaserv.get_emailusers('LDAPImport', 0, 1, is_active=True)) > 0:
|
||||
have_ldap_user = True
|
||||
|
||||
try:
|
||||
ldap = True if int(request.GET.get('ldap', 0)) == 1 else False
|
||||
except ValueError:
|
||||
ldap = False
|
||||
|
||||
if ldap and have_ldap_user:
|
||||
# return ldap imported active users
|
||||
users_plus_one = seaserv.get_emailusers('LDAPImport',
|
||||
per_page * (current_page - 1),
|
||||
per_page + 1,
|
||||
is_active=True)
|
||||
else:
|
||||
users_plus_one = get_pub_users(request, per_page * (current_page - 1),
|
||||
per_page + 1)
|
||||
|
||||
has_prev = False if current_page == 1 else True
|
||||
has_next = True if len(users_plus_one) == per_page + 1 else False
|
||||
|
||||
if ldap and have_ldap_user:
|
||||
# return the number of ldap imported active users
|
||||
emailusers_count = seaserv.ccnet_threaded_rpc.count_emailusers('LDAP')
|
||||
else:
|
||||
emailusers_count = count_pub_users(request)
|
||||
|
||||
num_pages = int(ceil(emailusers_count / float(per_page)))
|
||||
page_range = get_page_range(current_page, num_pages)
|
||||
show_paginator = True if len(page_range) > 1 else False
|
||||
|
||||
users = users_plus_one[:per_page]
|
||||
|
||||
return render_to_response('pubuser.html', {
|
||||
'users': users,
|
||||
'current_page': current_page,
|
||||
'has_prev': has_prev,
|
||||
'has_next': has_next,
|
||||
'page_range': page_range,
|
||||
'show_paginator': show_paginator,
|
||||
'have_ldap_user': have_ldap_user,
|
||||
'ldap': ldap,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
@login_required_ajax
|
||||
def repo_set_password(request):
|
||||
content_type = 'application/json; charset=utf-8'
|
||||
|
@@ -1817,63 +1817,6 @@ def _create_repo_common(request, repo_name, repo_desc, encryption,
|
||||
|
||||
return repo_id
|
||||
|
||||
@login_required_ajax
|
||||
def public_repo_create(request):
|
||||
'''
|
||||
Handle ajax post to create public repo.
|
||||
|
||||
'''
|
||||
if request.method != 'POST':
|
||||
return Http404
|
||||
|
||||
result = {}
|
||||
content_type = 'application/json; charset=utf-8'
|
||||
|
||||
if not request.user.permissions.can_add_repo():
|
||||
result['error'] = _(u"You do not have permission to create library")
|
||||
return HttpResponse(json.dumps(result), status=403,
|
||||
content_type=content_type)
|
||||
|
||||
form = SharedRepoCreateForm(request.POST)
|
||||
if not form.is_valid():
|
||||
result['error'] = str(form.errors.values()[0])
|
||||
return HttpResponseBadRequest(json.dumps(result),
|
||||
content_type=content_type)
|
||||
|
||||
repo_name = form.cleaned_data['repo_name']
|
||||
repo_desc = form.cleaned_data['repo_desc']
|
||||
permission = form.cleaned_data['permission']
|
||||
encryption = int(form.cleaned_data['encryption'])
|
||||
|
||||
uuid = form.cleaned_data['uuid']
|
||||
magic_str = form.cleaned_data['magic_str']
|
||||
encrypted_file_key = form.cleaned_data['encrypted_file_key']
|
||||
|
||||
repo_id = _create_repo_common(request, repo_name, repo_desc, encryption,
|
||||
uuid, magic_str, encrypted_file_key)
|
||||
if repo_id is None:
|
||||
result['error'] = _(u'Internal Server Error')
|
||||
return HttpResponse(json.dumps(result), status=500,
|
||||
content_type=content_type)
|
||||
|
||||
org_id = -1
|
||||
if is_org_context(request):
|
||||
org_id = request.user.org.org_id
|
||||
seaserv.seafserv_threaded_rpc.set_org_inner_pub_repo(
|
||||
org_id, repo_id, permission)
|
||||
else:
|
||||
seafile_api.add_inner_pub_repo(repo_id, permission)
|
||||
|
||||
username = request.user.username
|
||||
repo_created.send(sender=None,
|
||||
org_id=org_id,
|
||||
creator=username,
|
||||
repo_id=repo_id,
|
||||
repo_name=repo_name)
|
||||
|
||||
result['success'] = True
|
||||
return HttpResponse(json.dumps(result), content_type=content_type)
|
||||
|
||||
@login_required_ajax
|
||||
def events(request):
|
||||
events_count = 15
|
||||
|
@@ -1,15 +1,19 @@
|
||||
define([
|
||||
'underscore',
|
||||
'backbone',
|
||||
'common',
|
||||
'app/models/pub-repo'
|
||||
], function(_, Backbone, PubRepo) {
|
||||
], function(_, Backbone, Common, PubRepo) {
|
||||
'use strict';
|
||||
|
||||
var PubRepoCollection = Backbone.Collection.extend({
|
||||
model: PubRepo,
|
||||
url: app.pageOptions.pubReposUrl,
|
||||
|
||||
comparator: -'mtime'
|
||||
comparator: -'mtime',
|
||||
|
||||
url: function() {
|
||||
return Common.getUrl({name: 'pub_repos'});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
@@ -1,15 +1,19 @@
|
||||
define([
|
||||
'underscore',
|
||||
'backbone',
|
||||
'common',
|
||||
'app/models/repo'
|
||||
], function(_, Backbone, Repo) {
|
||||
], function(_, Backbone, Common, Repo) {
|
||||
'use strict';
|
||||
|
||||
var RepoCollection = Backbone.Collection.extend({
|
||||
model: Repo,
|
||||
url: app.pageOptions.reposUrl,
|
||||
type: 'mine',
|
||||
|
||||
url: function() {
|
||||
return Common.getUrl({name: 'repos'});
|
||||
},
|
||||
|
||||
initialize: function(options) {
|
||||
//console.log('init RepoCollection');
|
||||
if (options) {
|
||||
@@ -20,7 +24,7 @@ define([
|
||||
fetch: function(options) {
|
||||
// override default fetch url
|
||||
options = options ? _.clone(options) : {};
|
||||
options.url = this.url + '?type=' + this.type;
|
||||
options.url = this.url() + '?type=' + this.type;
|
||||
|
||||
//call Backbone's fetch
|
||||
return Backbone.Collection.prototype.fetch.call(this, options);
|
||||
|
@@ -89,6 +89,8 @@ define([
|
||||
case 'get_dirents': return siteRoot + 'ajax/repo/' + options.repo_id + '/dirents/';
|
||||
|
||||
// Repos
|
||||
case 'repos': return siteRoot + 'api2/repos/';
|
||||
case 'pub_repos': return siteRoot + 'api2/repos/public/';
|
||||
case 'repo_del': return siteRoot + 'ajax/repo/' + options.repo_id + '/remove/';
|
||||
case 'sub_repo': return siteRoot + 'ajax/repo/' + options.repo_id + '/dir/sub_repo/';
|
||||
case 'get_my_unenc_repos': return siteRoot + 'ajax/my-unenc-repos/';
|
||||
|
Reference in New Issue
Block a user