def personal_wiki_create(request): if request.method != 'POST': raise Http404 content_type = 'application/json; charset=utf-8' def json_error(err_msg, status=400): result = {'error': err_msg} return HttpResponse(json.dumps(result), status=status, content_type=content_type) form = WikiCreateForm(request.POST) if not form.is_valid(): return json_error(str(form.errors.values()[0])) # create group repo in user context repo_name = form.cleaned_data['repo_name'] repo_desc = form.cleaned_data['repo_desc'] username = request.user.username passwd = None permission = "rw" repo_id = seaserv.create_repo(repo_name, repo_desc, username, passwd) if not repo_id: return json_error(_(u'Failed to create'), 500) PersonalWiki.objects.save_personal_wiki(username=username, repo_id=repo_id) # create home page page_name = "home.md" if not seaserv.post_empty_file(repo_id, "/", page_name, username): return json_error(_(u'Failed to create home page. Please retry later'), 500) next = reverse('personal_wiki', args=[]) return HttpResponse(json.dumps({'href': next}), content_type=content_type)
def group_wiki_create(request, group): if request.method != 'POST': raise Http404 content_type = 'application/json; charset=utf-8' def json_error(err_msg, status=400): result = {'error': err_msg} return HttpResponse(json.dumps(result), status=status, content_type=content_type) form = WikiCreateForm(request.POST) if not form.is_valid(): return json_error(str(form.errors.values()[0])) # create group repo in user context repo_name = form.cleaned_data['repo_name'] repo_desc = form.cleaned_data['repo_desc'] user = request.user.username passwd = None permission = "rw" repo_id = create_repo(repo_name, repo_desc, user, passwd) if not repo_id: return json_error(_(u'Failed to create'), 500) try: status = seafserv_threaded_rpc.group_share_repo(repo_id, group.id, user, permission) except SearpcError, e: remove_repo(repo_id) return json_error(_(u'Failed to create: internal error.'), 500)
def group_wiki_create(request, group): if group.view_perm == "pub": raise Http404 if request.method != 'POST': raise Http404 content_type = 'application/json; charset=utf-8' def json_error(err_msg, status=400): result = {'error': err_msg} return HttpResponse(json.dumps(result), status=status, content_type=content_type) form = WikiCreateForm(request.POST) if not form.is_valid(): return json_error(str(form.errors.values()[0])) # create group repo in user context repo_name = form.cleaned_data['repo_name'] repo_desc = form.cleaned_data['repo_desc'] user = request.user.username passwd = None permission = "rw" repo_id = create_repo(repo_name, repo_desc, user, passwd) if not repo_id: return json_error(_(u'Failed to create'), 500) try: seafile_api.set_group_repo(repo_id, group.id, user, permission) except SearpcError as e: remove_repo(repo_id) return json_error(_(u'Failed to create: internal error.'), 500) GroupWiki.objects.save_group_wiki(group_id=group.id, repo_id=repo_id) # create home page page_name = "home.md" if not post_empty_file(repo_id, "/", page_name, user): return json_error(_(u'Failed to create home page. Please retry later'), 500) next = reverse('group_wiki', args=[group.id]) return HttpResponse(json.dumps({'href': next}), content_type=content_type)
def personal_wiki_create(request): if request.method != "POST": raise Http404 content_type = "application/json; charset=utf-8" def json_error(err_msg, status=400): result = {"error": err_msg} return HttpResponse(json.dumps(result), status=status, content_type=content_type) if not request.user.permissions.can_add_repo(): return json_error(_("You do not have permission to create wiki"), 403) form = WikiCreateForm(request.POST) if not form.is_valid(): return json_error(str(form.errors.values()[0])) # create group repo in user context repo_name = form.cleaned_data["repo_name"] repo_desc = form.cleaned_data["repo_desc"] username = request.user.username passwd = None permission = "rw" repo_id = seaserv.create_repo(repo_name, repo_desc, username, passwd) if not repo_id: return json_error(_(u"Failed to create"), 500) PersonalWiki.objects.save_personal_wiki(username=username, repo_id=repo_id) # create home page page_name = "home.md" if not seaserv.post_empty_file(repo_id, "/", page_name, username): return json_error(_(u"Failed to create home page. Please retry later"), 500) next = reverse("personal_wiki", args=[]) return HttpResponse(json.dumps({"href": next}), content_type=content_type)
user, permission) except SearpcError, e: status = -1 # if share failed, remove the newly created repo if status != 0: remove_repo(repo_id) return json_error(_(u'Failed to create: internal error.')) else: result = {'success': True} return HttpResponse(json.dumps(result), content_type=content_type) else: # create group repo in user context repo_id = create_repo(repo_name, repo_desc, user, passwd) if not repo_id: return json_error(_(u'Failed to create')) try: status = seafserv_threaded_rpc.group_share_repo(repo_id, group_id, user, permission) except SearpcError, e: status = -1 # if share failed, remove the newly created repo if status != 0: remove_repo(repo_id) return json_error(_(u'Failed to create: internal error.'))