1
0
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:
plt
2013-03-30 11:01:43 +08:00
parent 00cc5829f7
commit 3cb35c8bda
3 changed files with 68 additions and 4 deletions

View File

@@ -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 %}

View File

@@ -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),

View File

@@ -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