diff --git a/SWSCloudAdministrator/Administrator/__init__.py b/SWSCloudAdministrator/Administrator/__init__.py index 720b5f9..9aebfb4 100644 --- a/SWSCloudAdministrator/Administrator/__init__.py +++ b/SWSCloudAdministrator/Administrator/__init__.py @@ -1,8 +1,9 @@ # coding: utf-8 from uuid import uuid4 +from hashlib import md5 import validators - +from datetime import datetime from flask import Blueprint, flash, g, jsonify, redirect, render_template, request, session, url_for from SWSCloudAdministrator.Administrator.common import requires_login @@ -12,12 +13,14 @@ from SWSCloudCore.controllers.common import ControllerMessagesEmail from SWSCloudCore.controllers.datacenters.manage import ControllerManageDatacenters from SWSCloudCore.controllers.ips.manage import ControllerManageIPs from SWSCloudCore.controllers.servers.manage import ControllerManageServer +from SWSCloudCore.controllers.settings import ControllerSettings # from SWSCloudCore.controllers.users.manage import ControllerManageUsers # from SWSCloudCore.controllers.users.manage import ControllerManageUsersBalance # from SWSCloudCore.controllers.users.manage import ControllerManageUsersDetails from SWSCloudCore.controllers.plans import ControllerPlans from SWSCloudCore import models + viewAdministrator = Blueprint('administrator', __name__, url_prefix='/administrator') @@ -28,7 +31,7 @@ def login(): @viewAdministrator.route('/login.html', methods=['POST']) def login_post(): - admin_email = request.form.get('email').encode('utf-8') + admin_email = request.form.get('email') admin_password = request.form.get('password').encode('utf-8') # validation entered data @@ -51,7 +54,7 @@ def login_post(): # redirect to rules list return redirect(url_for('administrator.dashboard')) - + # return "" @viewAdministrator.route('/logout.html') def logout(): @@ -408,3 +411,40 @@ def plan_edit(plan_id): return render_template( 'administrator/plans/edit.html', plan_details=models.PlansVMs.select().where(models.PlansVMs.id == plan_id).get()) + + + + +@viewAdministrator.route('/setup', methods=['GET', 'POST']) +# @requires_login +def setup(): + # # check exists plan + # if models.PlansVMs.select().where(models.PlansVMs.id == plan_id).count() == 0: + # return redirect(url_for('administrator.plans_index')) + + if request.method == 'POST': + + admin_id = uuid4() + admin_email = request.form.get('email') + admin_password = md5(request.form.get('password').encode()).hexdigest() + + # models.database.connect() + + if models.Admins.select().where(models.Admins.email == admin_email).count() == 0: + models.Admins.create(id=admin_id, email=admin_email, password=admin_password, status=1) + + cs = ControllerSettings() + cs.create('_setup_finish', str(datetime.now())) + + return redirect(url_for('administrator.login')) + + _setup_finish = models.Settings.select().where( + models.Settings.key == "_setup_finish" + ).count() + + if _setup_finish != 0: + return redirect(url_for('login')) + + return render_template( + 'administrator/setup/index.html' + ) diff --git a/SWSCloudAdministrator/templates/administrator/setup/index.html b/SWSCloudAdministrator/templates/administrator/setup/index.html new file mode 100644 index 0000000..668224a --- /dev/null +++ b/SWSCloudAdministrator/templates/administrator/setup/index.html @@ -0,0 +1,28 @@ +{% extends 'administrator/_layout.noauth.html' %} + +{% block content %} +