def group_dismiss(request, group_id): """ Dismiss a group, only group staff can perform this operation. """ next = request.META.get('HTTP_REFERER', None) if not next: next = SITE_ROOT try: group_id_int = int(group_id) except ValueError: return HttpResponseRedirect(next) # Check whether user is group staff user = request.user.username if not ccnet_threaded_rpc.check_group_staff(group_id_int, user): return render_permission_error(request, _(u'Only administrators can dismiss the group')) try: ccnet_threaded_rpc.remove_group(group_id_int, user) seafserv_threaded_rpc.remove_repo_group(group_id_int, None) if request.user.org: org_id = request.user.org['org_id'] url_prefix = request.user.org['url_prefix'] ccnet_threaded_rpc.remove_org_group(org_id, group_id_int) return HttpResponseRedirect(reverse('org_groups', args=[url_prefix])) except SearpcError, e: return render_error(request, _(e.msg))
def org_group_remove(request, url_prefix, group_id): # Request header may missing HTTP_REFERER, we need to handle that case. next = request.META.get("HTTP_REFERER", None) if not next: next = seahub_settings.SITE_ROOT try: group_id_int = int(group_id) except ValueError: return HttpResponseRedirect(next) # Check whether is the org group. org_id = get_org_id_by_group(group_id_int) if request.user.org["org_id"] != org_id: return render_permission_error( request, _(u"This group doesn't belong to current organazation"), extra_ctx={"org": request.user.org, "base_template": "org_base.html"}, ) try: ccnet_threaded_rpc.remove_group(group_id_int, request.user.username) seafserv_threaded_rpc.remove_repo_group(group_id_int, None) ccnet_threaded_rpc.remove_org_group(org_id, group_id_int) except SearpcError, e: return render_error(request, e.msg, extra_ctx={"org": request.user.org, "base_template": "org_base.html"})
def group_quit(request, group_id): try: group_id_int = int(group_id) except ValueError: return render_error(request, _(u"group id is not a valid argument.")) try: ccnet_threaded_rpc.quit_group(group_id_int, request.user.username) seafserv_threaded_rpc.remove_repo_group(group_id_int, request.user.username) except SearpcError, e: return render_error(request, e.msg)
def group_remove_member(request, group_id, user_name): try: group_id_int = int(group_id) except ValueError: return render_error(request, _(u"group id is not valid")) if not check_group_staff(group_id_int, request.user): raise Http404 try: ccnet_threaded_rpc.group_remove_member(group_id_int, request.user.username, user_name) seafserv_threaded_rpc.remove_repo_group(group_id_int, user_name) messages.success(request, _(u"Operation succeeded.")) except SearpcError, e: messages.error(request, _(u"Failed:%s") % e.msg)
def group_remove(request, group_id): """ Remove group from groupadmin page. Only system admin can perform this operation. """ # Check whether user is system admin. if not request.user.is_staff: return render_permission_error(request, _(u'Only administrators can delete the group.')) # Request header may missing HTTP_REFERER, we need to handle that case. next = request.META.get('HTTP_REFERER', None) if not next: next = SITE_ROOT try: group_id_int = int(group_id) except ValueError: return HttpResponseRedirect(next) try: ccnet_threaded_rpc.remove_group(group_id_int, request.user.username) seafserv_threaded_rpc.remove_repo_group(group_id_int, None) except SearpcError, e: return render_error(request, _(e.msg))