Exemplo n.º 1
0
def post_models(request):
    """Creates a model with the given definition and records, if any."""
    if request.credentials_id:
        credentials_id = request.credentials_id
    else:
        credentials_id = Everyone

    specified_perms = request.data_clean['permissions']
    default_perms = default_model_permissions(credentials_id)
    permissions = merge_permissions(default_perms, specified_perms)

    model_id = request.db.put_model(
        definition=request.data_clean['definition'],
        permissions=permissions)

    request.notify('ModelCreated', model_id)

    for record in request.data_clean['records']:
        record_id = request.db.put_record(model_id, record, [credentials_id])
        request.notify('RecordCreated', model_id, record_id)

    request.response.status = "201 Created"
    location = '%s/models/%s' % (request.application_url, model_id)
    request.response.headers['location'] = str(location)
    return {'id': model_id}
Exemplo n.º 2
0
def handle_put_model(request, create=False):
    model_id = request.matchdict["model_id"]

    if request.credentials_id:
        credentials_id = request.credentials_id
    else:
        credentials_id = Everyone

    specified_perms = request.data_clean["permissions"]
    default_perms = default_model_permissions(credentials_id)
    permissions = merge_permissions(default_perms, specified_perms)

    request.db.put_model(request.data_clean["definition"], permissions, model_id)

    event = "ModelCreated" if create else "ModelUpdated"
    request.notify(event, model_id)

    for record in request.data_clean["records"]:
        record_id = request.db.put_record(model_id, record, [credentials_id])
        request.notify("RecordCreated", model_id, record_id)

    return {"id": model_id}
Exemplo n.º 3
0
def handle_put_model(request, create=False):
    model_id = request.matchdict['model_id']

    if request.credentials_id:
        credentials_id = request.credentials_id
    else:
        credentials_id = Everyone

    specified_perms = request.data_clean['permissions']
    default_perms = default_model_permissions(credentials_id)
    permissions = merge_permissions(default_perms, specified_perms)

    request.db.put_model(request.data_clean['definition'], permissions,
                         model_id)

    event = 'ModelCreated' if create else 'ModelUpdated'
    request.notify(event, model_id)

    for record in request.data_clean['records']:
        record_id = request.db.put_record(model_id, record, [credentials_id])
        request.notify('RecordCreated', model_id, record_id)

    return {"id": model_id}
Exemplo n.º 4
0
def handle_put_model(request, create=False):
    model_id = request.matchdict['model_id']

    if request.credentials_id:
        credentials_id = request.credentials_id
    else:
        credentials_id = Everyone

    specified_perms = request.data_clean['permissions']
    default_perms = default_model_permissions(credentials_id)
    permissions = merge_permissions(default_perms, specified_perms)

    request.db.put_model(request.data_clean['definition'],
                         permissions,
                         model_id)

    event = 'ModelCreated' if create else 'ModelUpdated'
    request.notify(event, model_id)

    for record in request.data_clean['records']:
        record_id = request.db.put_record(model_id, record, [credentials_id])
        request.notify('RecordCreated', model_id, record_id)

    return {"id": model_id}
Exemplo n.º 5
0
def post_models(request):
    """Creates a model with the given definition and records, if any."""
    if request.credentials_id:
        credentials_id = request.credentials_id
    else:
        credentials_id = Everyone

    specified_perms = request.data_clean['permissions']
    default_perms = default_model_permissions(credentials_id)
    permissions = merge_permissions(default_perms, specified_perms)

    model_id = request.db.put_model(
        definition=request.data_clean['definition'], permissions=permissions)

    request.notify('ModelCreated', model_id)

    for record in request.data_clean['records']:
        record_id = request.db.put_record(model_id, record, [credentials_id])
        request.notify('RecordCreated', model_id, record_id)

    request.response.status = "201 Created"
    location = '%s/models/%s' % (request.application_url, model_id)
    request.response.headers['location'] = str(location)
    return {'id': model_id}
Exemplo n.º 6
0
 def test_nobody_can_change_permissions_of_anonymous_models(self):
     perms = default_model_permissions('system.Everyone')
     self.assertEqual(set(perms.keys()),
                      PERMISSIONS_SET - set(['update_permissions']))
Exemplo n.º 7
0
 def test_default_model_permissions(self):
     perms = default_model_permissions('abc')
     self.assertEqual(set(perms.keys()), PERMISSIONS_SET)
     tokens = [t[0] for t in perms.values()]
     self.assertEqual(set(['abc']), set(tokens))
Exemplo n.º 8
0
 def test_nobody_can_change_permissions_of_anonymous_models(self):
     perms = default_model_permissions('system.Everyone')
     self.assertEqual(set(perms.keys()),
                      PERMISSIONS_SET - set(['update_permissions']))
Exemplo n.º 9
0
 def test_default_model_permissions(self):
     perms = default_model_permissions('abc')
     self.assertEqual(set(perms.keys()), PERMISSIONS_SET)
     tokens = [t[0] for t in perms.values()]
     self.assertEqual(set(['abc']), set(tokens))