mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-09 19:01:42 +00:00
Can make/revoke group's public property
This commit is contained in:
@@ -32,9 +32,14 @@
|
||||
</div>
|
||||
|
||||
<div class="info-item">
|
||||
<h3 class="info-item-top">{% trans "Operations"%}</h3>
|
||||
<h3 class="info-item-top">{% trans "Operations" %}</h3>
|
||||
<ul class="info-item-bottom op-list">
|
||||
<li><a id="group-dismiss" href="#" data-url="{% url 'group_dismiss' group.id %}">{% trans "Dismiss"%}</a></li>
|
||||
<li><a id="group-dismiss" href="#" data-url="{% url 'group_dismiss' group.id %}">{% trans "Dismiss" %}</a></li>
|
||||
{% if is_pub %}
|
||||
<li><a href="{% url 'group_revoke_pub' group.id %}">{% trans "Revoke Public" %}</a></li>
|
||||
{% else %}
|
||||
<li><a href="{% url 'group_make_pub' group.id %}">{% trans "Make Public" %}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -64,7 +69,7 @@
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
<h3>{% trans "Administrators"%}</h3>
|
||||
<h3>{% trans "Administrators" %}</h3>
|
||||
<button id="group-admin-add" class="add">{% trans "Add Administrators"%}</button>
|
||||
{% if admins %}
|
||||
<table>
|
||||
@@ -88,6 +93,7 @@
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% include 'group/grpmember_add_form.html' %}
|
||||
{% endblock %}
|
||||
|
||||
|
@@ -5,7 +5,8 @@ from views import group_info, group_member_operations, group_add_admin, \
|
||||
create_group_repo, group_joinrequest, attention, group_message_remove, \
|
||||
group_remove_admin, group_discuss, group_wiki, group_wiki_create, \
|
||||
group_wiki_page_new, group_wiki_page_edit, group_wiki_pages, \
|
||||
group_wiki_page_delete, group_remove, group_dismiss, group_quit
|
||||
group_wiki_page_delete, group_remove, group_dismiss, group_quit, \
|
||||
group_make_public, group_revoke_public
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^(?P<group_id>\d+)/$', group_info, name='group_info'),
|
||||
@@ -22,6 +23,8 @@ urlpatterns = patterns('',
|
||||
url(r'^(?P<group_id>\d+)/manage/$', group_manage, name='group_manage'),
|
||||
url(r'^(?P<group_id>\d+)/remove/$', group_remove, name='group_remove'),
|
||||
url(r'^(?P<group_id>\d+)/dismiss/$', group_dismiss, name='group_dismiss'),
|
||||
url(r'^(?P<group_id>\d+)/make_pub/$', group_make_public, name='group_make_pub'),
|
||||
url(r'^(?P<group_id>\d+)/revoke_pub/$', group_revoke_public, name='group_revoke_pub'),
|
||||
url(r'^(?P<group_id>\d+)/quit/$', group_quit, name='group_quit'),
|
||||
url(r'^(?P<group_id>[\d]+)/create-repo/$', create_group_repo, name='create_group_repo'),
|
||||
(r'^(?P<group_id>[\d]+)/member/(?P<user_name>[^/]+)/$', group_member_operations),
|
||||
|
@@ -214,6 +214,55 @@ def group_dismiss(request, group_id):
|
||||
|
||||
return HttpResponseRedirect(reverse('group_list'))
|
||||
|
||||
@login_required
|
||||
def group_make_public(request, group_id):
|
||||
"""
|
||||
Make a group public, only group staff can perform this operation.
|
||||
"""
|
||||
try:
|
||||
group_id_int = int(group_id)
|
||||
except ValueError:
|
||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||
|
||||
group = get_group(group_id_int)
|
||||
if not group:
|
||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||
|
||||
# Check whether user is group staff
|
||||
if not is_group_staff(group, request.user):
|
||||
return render_permission_error(request, _(u'Only administrators can make the group public'))
|
||||
|
||||
p = PublicGroup(group_id=group.id)
|
||||
p.save()
|
||||
return HttpResponseRedirect(reverse('group_manage', args=[group_id]))
|
||||
|
||||
@login_required
|
||||
def group_revoke_public(request, group_id):
|
||||
"""
|
||||
Revoke a group from public, only group staff can perform this operation.
|
||||
"""
|
||||
try:
|
||||
group_id_int = int(group_id)
|
||||
except ValueError:
|
||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||
|
||||
group = get_group(group_id_int)
|
||||
if not group:
|
||||
return HttpResponseRedirect(reverse('group_list', args=[]))
|
||||
|
||||
# Check whether user is group staff
|
||||
if not is_group_staff(group, request.user):
|
||||
return render_permission_error(request, _(u'Only administrators can make the group public'))
|
||||
|
||||
try:
|
||||
p = PublicGroup.objects.get(id=group.id)
|
||||
p.delete()
|
||||
except:
|
||||
pass
|
||||
|
||||
return HttpResponseRedirect(reverse('group_manage', args=[group_id]))
|
||||
|
||||
|
||||
@login_required
|
||||
def group_quit(request, group_id):
|
||||
try:
|
||||
@@ -526,11 +575,17 @@ def group_manage(request, group_id):
|
||||
|
||||
contacts = Contact.objects.filter(user_email=user)
|
||||
|
||||
if PublicGroup.objects.filter(group_id=group.id):
|
||||
is_pub = True
|
||||
else:
|
||||
is_pub = False
|
||||
|
||||
return render_to_response('group/group_manage.html', {
|
||||
'group' : group,
|
||||
'members': members_all,
|
||||
'admins': admins,
|
||||
'contacts': contacts,
|
||||
'is_pub': is_pub,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
@login_required
|
||||
|
Reference in New Issue
Block a user