def edit_permission(req, id): ctx = Context() found = False p = ctx.get_permission(id) if p is None: raise Http404 p.description = req.POST['description'] p.type = req.POST['type'] constraint_types = req.POST["constraint_types"].strip() and \ req.POST['constraint_types'].split("\n") or [] constraints = req.POST["constraints"].strip() and \ req.POST['constraints'].split("\n") or [] p.constraints = [] for i, t in enumerate(constraint_types): p.add_constraint(t, constraints[i]) for i in xrange(len(ctx.permissions)): if ctx.permissions[i].id == id: ctx.permissions[i] = p break ctx.write_xml() return HttpResponse("{'result': 'OK'}")
def edit_role(req, id): ctx = Context() role = ctx.get_role(id=id) if not role: raise Http404 role.description = req.POST['description'] role.permissions = [] for id in (req.POST['permissions'].strip() and req.POST['permissions'].split(",") or []): role.permissions.append(ctx.get_permission(id)) for i in xrange(len(ctx.roles)): if ctx.roles[i].id == id: ctx.roles[i] = role break ctx.write_xml() return HttpResponse("{'result': 'OK'}")
def get_permission(req, id): ctx = Context() perm = ctx.get_permission(id) if perm is None: raise Http404 data = [] data.append("'id': '%s'" % perm.id.replace("'", "\\'")) data.append("'description': '%s'" % perm.description.replace("'", "\\'").replace("\n", "\\n'+\n'")) data.append("'type': '%s'" % perm.type.replace("'", "\\'")) ccdata = [] for c in perm.constraints: cdata = [] cdata.append("'type': '%s'" % c.type) cdata.append("'content': '%s'" % c.content.replace("'", "\\'").replace("\\", "\\\\").replace("\n", "\\n'+\n'")) ccdata.append("{%s}" % ",".join(cdata)) data.append("'constraints': [%s]" % ",".join(ccdata)) return HttpResponse("{%s}" % ",".join(data))