def create(request):

    data = request.DATA

    if getattr(request, 'ignore_csrf_checks', False):
        return {'code': 'no_access'}, 404, False

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['name'] is None:
        return {'code': 'user_app/no_name'}, 404, False

    user = helpers.get_user(request)

    if not user or not request.user.is_superuser:
        return {'code': 'no_access'}, 404, False
    if user is None:
        return {'code': 'account/not_active'}, 404, False

    data, code, item = resource.get_item_by_name(request, data['name'])

    if item is not False:
        return {'code': 'user_app/exists', 'values': [data['name']]}, 404, False

    return {'code': 'ok'}, 200, True
def login(request):
    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['password'] is None:
        return {'code': 'account/no_password'}, 404, False

    if data['email'] is None:
        return {'code': 'account/not_email'}, 404, False

    data['email'] = data['email'].lower()

    try:
        validate_email(data['email'])
    except ValidationError:
        return {'code': 'account/wrong_email'}, 404, False

    user = resource.get_item_by_email(request, data['email'])

    if not user:
        return {'code': 'account/user_not_found', 'values': [data['email']]}, 404, False

    return {'code': 'ok'}, 200, True
def update(request, public_link_id):
    """Update record"""

    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['src'] is None:
        return {'code': 'public_link/no_src'}, 404, False

    user = helpers.get_user(request)

    if not user or not request.user.is_superuser:
        return {'code': 'no_access'}, 404, False
    if user is None:
        return {'code': 'account/not_active'}, 404, False

    data, code, item = resource.get_item_by_src(request, data['src'])

    if (item is not False) and (int(item.id) != int(public_link_id)):
        return {'code': 'public_link/exists', 'values': [data['text']]}, 404, False

    return {'code': 'ok'}, 200, True
def create(request):
    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['name'] is None:
        return {'code': 'post/no_name'}, 404, False
    if data['title_%s' % get_language()] is None:
        return {'code': 'post/no_title'}, 404, False
    if data['description_%s' % get_language()] is None:
        return {'code': 'post/no_description'}, 404, False

    user = helpers.get_user(request)

    if not user or not request.user.is_superuser:
        return {'code': 'no_access'}, 404, False
    if user is None:
        return {'code': 'account/not_active'}, 404, False

    data, code, item = resource.get_item_by_name(request, data['name'])

    if item is not False:
        return {'code': 'post/exists', 'values': [data['name']]}, 404, False

    return {'code': 'ok'}, 200, True
def create(request):

    data = request.DATA

    if getattr(request, 'ignore_csrf_checks', False):
        return {'code': 'no_access'}, 404, False

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['password'] is None:
        return {'code': 'account/no_password'}, 404, False

    if data['email'] is None:
        return {'code': 'account/not_email'}, 404, False

    data['email'] = data['email'].lower()

    try:
        validate_email(data['email'])
    except ValidationError:
        return {'code': 'account/wrong_email'}, 404, False

    user = resource.get_item_by_email(request, data['email'])

    if user:
        return {'code': 'account/exists', 'values': [data['email']]}, 404, False

    return {'code': 'ok'}, 200, True
def update(request):
    """Update record"""

    data = request.DATA

    if getattr(request, 'ignore_csrf_checks', False):
        return {'code': 'no_access'}, 404, False

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['email'] is None:
        return {'code': 'account/not_email'}, 404, False

    data['email'] = data['email'].lower()

    try:
        validate_email(data['email'])
    except ValidationError:
        return {'code': 'account/wrong_email'}, 404, False

    user = helpers.get_user(request)

    if not user:
        return {'code': 'no_access'}, 404, False

    return {'code': 'ok'}, 200, True
def reset(request):
    """Reset password action"""

    if request.user.is_authenticated():
        return {'code': 'no_access'}, 404, False

    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['code'] is None:
        return {'code': 'account/no_code'}, 404, False

    data['code'] = data['code'].lower()

    if data['password'] is None:
        return {'code': 'account/no_password'}, 404, False

    code = resource.get_code(request, data['code'])

    if not code:
        return {'code': 'account/code_not_found', 'values': [data['code']]}, 404, False

    return {'code': 'ok'}, 200, True
def recovery(request):
    """Recovery action"""

    if request.user.is_authenticated():
        return {'code': 'no_access'}, 404, False

    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['email'] is None:
        return {'code': 'account/not_email'}, 404, False

    data['email'] = data['email'].lower()

    try:
        validate_email(data['email'])
    except ValidationError:
        return {'code': 'account/wrong_email'}, 404, False

    user = resource.get_item_by_email(request, data['email'])

    if not user:
        return {'code': 'account/user_not_found', 'values': [data['email']]}, 404, False

    return {'code': 'ok'}, 200, True
def send(request):
    """Send message"""

    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())
    data['email'] = data['email'].lower()

    if data['email'] == '':
        return {'code': 'contact/not_email'}, 404, False
    if data['username'] == '':
        return {'code': 'contact/not_username'}, 404, False
    if data['message'] == '':
        return {'code': 'contact/not_message'}, 404, False

    # Validate values of fields
    try:
        validate_email(data['email'])
    except ValidationError:
        return {'code': 'account/wrong_email'}, 404, False

    return {'code': 'ok'}, 200, True
def create(request):
    data = request.DATA

    if data is False:
        return {'code': 'no_data'}, 404, False

    data = helpers.set_null_values_if_not_exist(data, resource.get_fields())

    if data['url'] is None:
        return {'code': 'html_cache/no_url'}, 404, False

    user = helpers.get_user(request)

    if not user or not request.user.is_superuser:
        return {'code': 'no_access'}, 404, False
    if user is None:
        return {'code': 'account/not_active'}, 404, False

    data, code, item = resource.get_item_by_url(request, data['url'])

    if item is not False:
        return {'code': 'html_cache/exists', 'values': [data['url']]}, 404, False

    return {'code': 'ok'}, 200, True