예제 #1
0
def invite_user_to_house(request):
    if request.user.is_authenticated and request.method == 'POST':
        token = secrets.token_urlsafe(32)
        password = secrets.token_urlsafe(8)
        house_id = sql.get_default_house(request.user.id)[0]
        user = User.objects.create_user(
            username=request.POST['email'],
            email=request.POST['email'],
            password=password,
            first_name="Name",
            last_name="Surname",
            is_active=0,
        )
        user.save()
        is_admin = request.POST.get('admin', "false")
        print(is_admin)
        if is_admin == "on":
            is_admin = 1
        else:
            is_admin = 0
        sql.create_user_has_house(user.id, house_id, is_admin)
        sql.set_default_house(user.id, house_id)
        sql.save_token(user.id, token)
        text = 'Hello there,\n You were added to the house! Please click the link to continue registration \n' + DOMAIN_NAME + "dashboard/" + str(
            user.id) + "/confirm/" + token + '\nYour login is your current email and password is:  ' + password
        send_email(user.email, text)
        return redirect('/dashboard/users')
예제 #2
0
def update_dashboard(request):
    if request.is_ajax() and request.user.is_authenticated:
        house_id = sql.get_default_house(request.user.id)
        response = {"valves": sql.get_house_valves_update(house_id),
                    "sensors": sql.get_house_sensors(house_id)}
        return JsonResponse(response)
    else:
        raise Http404
예제 #3
0
def disable_user_invitation(request):
    if request.user.is_authenticated and request.is_ajax():
        house_id = sql.get_default_house(request.user.id)
        sql.delete_user_invitation_token(house_id)
        response = {"token": 0}
        return JsonResponse(response)
    else:
        raise Http404
예제 #4
0
def delete_user(request):
    if request.user.is_authenticated and request.method == 'POST':
        # try:
        user_id = request.POST['id']
        house_id = sql.get_default_house(request.user.id)
        sql.delete_user(user_id, house_id)
        user = User.objects.get(id=user_id)
        user.delete()
        return redirect('/dashboard/users')
예제 #5
0
def telegram_delete_user(request):
    if request.user.is_authenticated and request.method == 'POST':
        try:
            username = request.POST['username']
            house_id = sql.get_default_house(request.user.id)
            sql.delete_telegram(username, house_id)
            return redirect('/dashboard/telegram_notification/')
        except Exception as ex:
            return redirect('/dashboard/telegram_notification/', exception=ex)
예제 #6
0
def valves_view(request):
    if request.user.is_authenticated:
        house_id = sql.get_default_house(request.user.id)
        user_id = request.user.id
        return render(request, "dashboard/valve.html",
                      {"locations": sql.get_locations(),
                       "valves": sql.get_house_valves_all(house_id),
                       'user': request.user.first_name + " " + request.user.last_name,
                       'preferences': sql.check_user_preferences(user_id)})
예제 #7
0
def telegram_notifications_view(request):
    if request.user.is_authenticated:
        house_id = sql.get_default_house(request.user.id)
        user_id = request.user.id
        return render(request, "dashboard/telegram_notification.html",
                      {"users": sql.get_house_users(house_id),
                       "telegram": sql.get_telegram_users(house_id),
                       "messenger": sql.get_messenger_users_by_house(house_id),
                       "user": request.user.first_name + " " + request.user.last_name,
                       'preferences': sql.check_user_preferences(user_id)})
예제 #8
0
def enable_user_invitation(request):
    if request.user.is_authenticated and request.is_ajax():
        token = secrets.token_urlsafe(32)
        house_id = sql.get_default_house(request.user.id)[0]
        sql.create_user_invitation_token(house_id, token)
        url = DOMAIN_NAME + "dashboard/users/" + str(house_id) + "/add/" + token
        response = {"token": url}
        return JsonResponse(response)
    else:
        raise Http404
예제 #9
0
def telegram_new_user(request):
    if request.user.is_authenticated and request.method == 'POST':
        try:
            user_name = request.POST['username']
            nickname = request.POST.get('user')
            if user_name[0] == "@":
                print(user_name)
                user_name = user_name[1:]
            sql.create_telegram(user_name, sql.get_default_house(request.user.id), nickname)
            return redirect('/dashboard/telegram_notification/')
        except Exception as ex:
            return redirect('/dashboard/telegram_notification/', exception=ex)
예제 #10
0
def create_new_valve(request):
    if request.user.is_authenticated and request.method == 'POST':
        try:
            name = request.POST['name']
            location = request.POST['location']
            token = secrets.token_urlsafe(4)
            locations_dict = {"Kitchen": 1, "Bathroom": 2, "Living room": 3, "Dining room": 4,
                              "Bedroom": 5, "Utility room": 6, "Other": 7}
            sql.create_valve(locations_dict[location], name, sql.get_default_house(request.user.id), 1, token)
            return render(request, "dashboard/valve_instruction.html", {"token": token})
        except Exception as ex:
            return redirect('/dashboard/', exception=ex)
예제 #11
0
def messenger_new_user(request):
    pass
    if request.user.is_authenticated and request.method == 'POST':
        try:
            url = request.POST['facebook_url']
            user = request.POST.get('user')
            facebook_id = messenger.get_facebook_id(url)
            house_id = sql.get_default_house(request.user.id)
            sql.create_messenger_user(user, facebook_id, house_id)
            msg = "Hello test message!"
            messenger.send_message(msg, facebook_id)
            return redirect('/dashboard/telegram_notification/')
        except Exception as ex:
            return redirect('/dashboard/telegram_notification/', exception=ex)
예제 #12
0
def dashboard_view(request):
    if request.user.is_authenticated:
        house_id = sql.get_default_house(request.user.id)
        user_id = request.user.id
        return render(request, 'dashboard/index.html',
                      {'valves_list': sql.get_house_valves(house_id),
                       'sensors_list': sql.get_house_sensors(house_id),
                       'locations_list': ("", "Kitchen", "Bathroom", "Living room", "Dining room",
                                          "Bedroom", "Utility room", "Other"),
                       'user': request.user.first_name + " " + request.user.last_name,
                       'preferences': sql.check_user_preferences(user_id)
                       })
    else:
        return redirect('/dashboard/login/')
예제 #13
0
def users_view(request):
    if request.user.is_authenticated:
        house_id = sql.get_default_house(request.user.id)[0]
        token = sql.get_invitation_token(house_id)
        user_id = request.user.id
        if token:
            url = DOMAIN_NAME + "dashboard/users/" + str(house_id) + "/add/" + token[0]
            print(url)
        else:
            url = None
        return render(request, 'dashboard/users.html',
                      {'token': url,
                       'user': request.user.first_name + " " + request.user.last_name,
                       'users': sql.get_house_users(house_id),
                       'number': 0,
                       'preferences': sql.check_user_preferences(user_id)
                       })
    else:
        return render(request, 'dashboard/index.html')