Ejemplo n.º 1
0
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'}")
Ejemplo n.º 2
0
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'}")
Ejemplo n.º 3
0
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'}")
Ejemplo n.º 4
0
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))