Exemple #1
0
def update_task(_id, field):
    if field == 'tags':
        tags_model.set(_id, g.user, json.loads(request.form['value']))
    else:
        task_model.update(_id, field, request.form['value'])

    if field == 'assignee':
        events.mediator('assigned', task_id=_id, user_id=request.form['value'])
    if field == 'status':
        events.mediator('status_update', task_id=_id)

    return Response(status=200)
Exemple #2
0
def kick_user(org_id, user_id):
    if not permission_model.permitted(g.user, org_id, PermissionTags.EDIT_USER):
        raise InsufficientPermission()

    if org_model.has_user(org_id, user_id):
        role = permission_model.get_role(user_id, org_id)
        if not permission_model.role_gte(g.user, org_id, role):
            raise InsufficientPermission()
        org_model.remove_user(org_id, user_id)
        events.mediator('kick', user_id=user_id, org_id=org_id)
    else:
        user_model.remove_from_waiting_list(user_id, org_id)

    return Response(status=204)
Exemple #3
0
def add_user_to_org(org_id, username):
    role = request.form['role']

    if not (permission_model.permitted(g.user, org_id, PermissionTags.EDIT_USER) and
            permission_model.role_gte(g.user, org_id, role)):
        raise InsufficientPermission()

    user_id = user_model.id_from('email', username)
    if user_id:
        org_model.add_user(org_id, user_id, role=role)
        events.mediator('added_to_project', email=username, project=org_id)
    else:
        # Add user to waiting list
        user_model.add_to_waiting_list(username, org_id, role)
        events.mediator('invite', email=username, org_id=org_id)

    org = org_model.get(org_id)
    return Response(json.dumps(org), status=200, content_type='application/json')
Exemple #4
0
def create_user():
    user = user_model.create({
        'email': request.form['email'],
        'name': request.form['name'],
        'password': request.form['password'],
    })

    for example_org_name in settings.EXAMPLE_ORGS:
        org_id = org_model.id_from('name', example_org_name)
        if org_id:
            org_model.add_user(org_id, user['id'])

    # Add user to waiting list orgs
    waiting_list = user_model.get_waiting_list_for_email(user['email'])
    if waiting_list:
        added_orgs = []
        for entry in waiting_list:
            org_id, role = entry.split('_')
            org_model.add_user(org_id, user['id'], role=role)
            user_model.remove_from_waiting_list(user['email'], org_id)
    else:
        events.mediator('signed_up', email=user['email'], name=user['name'])

    return Response(json.dumps(user), status=201, content_type='application/json')