1
0
Fork 0
mirror of https://github.com/fastogt/fastocloud_admin.git synced 2025-03-09 23:38:52 +00:00
fastocloud_admin/app/provider/view.py
2019-08-22 07:16:08 -04:00

59 lines
2 KiB
Python

from flask_classy import FlaskView, route
from flask import render_template, redirect, url_for, request
from flask_login import login_required, current_user
from app.common.provider.forms import SettingsForm
from app.common.service.entry import ServiceSettings
# routes
class ProviderView(FlaskView):
route_base = "/"
@login_required
def dashboard(self):
server = current_user.get_current_server()
if server:
streams = server.get_streams()
front_streams = []
for stream in streams:
front_streams.append(stream.to_front())
role = server.get_user_role_by_id(current_user.id)
return render_template('provider/dashboard.html', streams=front_streams, service=server,
servers=current_user.servers, role=role)
return redirect(url_for('ProviderView:settings'))
@route('/settings', methods=['POST', 'GET'])
@login_required
def settings(self):
servers = current_user.servers
form = SettingsForm(obj=current_user.settings)
if request.method == 'POST':
if form.validate_on_submit():
form.update_settings(current_user.settings)
current_user.save()
return render_template('provider/settings.html', form=form, servers=servers)
return render_template('provider/settings.html', form=form, servers=servers)
@login_required
def change_current_server(self, position):
if position.isdigit():
current_user.set_current_server_position(int(position))
return self.dashboard()
@login_required
def logout(self):
current_user.logout()
return redirect(url_for('HomeView:index'))
@login_required
def remove(self):
servers = ServiceSettings.objects()
for server in servers:
server.remove_provider(current_user)
current_user.delete()
return redirect(url_for('HomeView:index'))