console/SWSCloudAdministrator/Administrator/users.py
2016-10-20 04:30:25 +03:00

60 lines
2.3 KiB
Python

# coding: utf-8
from flask import Blueprint, flash, g, redirect, render_template, request, session, url_for
from SWSCloudCore.controllers.administrators import ControllerAdministrators
from SWSCloudCore.controllers.billing import ControllerBilling
from SWSCloudCore.controllers.users.manage import ControllerManageUsers
from SWSCloudCore.controllers.users.manage import ControllerManageUsersBalance
from SWSCloudCore.controllers.users.manage import ControllerManageUsersDetails
from SWSCloudAdministrator.Administrator.common import requires_login
view_administrator_users = Blueprint('administrator_users', __name__, url_prefix='/administrator/users')
@view_administrator_users.route('/')
@requires_login
def users():
#
return render_template(
'administrator/users/index.html',
users=ControllerManageUsers().items_get())
@view_administrator_users.route('/details/<uuid:user_id>.html')
@requires_login
def user_details(user_id):
# check exists user by uuid
if not ControllerManageUsers().exists_by_id(user_id):
return redirect(url_for('administrator_users.users'))
#
if not ControllerBilling().exists(user_id):
ControllerBilling().create(user_id, g.settings.get('bonus', 0))
return render_template(
'administrator/users/details.html',
user_account=ControllerManageUsers().item_get(user_id),
user_details=ControllerManageUsersDetails().item_get(user_id),
user_balance=ControllerManageUsersBalance().item_get(user_id))
@view_administrator_users.route('/credit_increase.html', methods=['POST'])
@requires_login
def user_credits_add():
user_id = request.form.get('user_id')
__amount = request.form.get('amount')
try:
amount = float(__amount)
except:
flash(u'Amount mast have type INT (123) or FLOAT (123.2)')
return redirect(url_for('administrator_users.user_details', user_id=user_id))
# check exists user by uuid
if not ControllerManageUsers().exists_by_id(user_id):
return redirect(url_for('administrator_users.users'))
#
if not ControllerBilling().exists(user_id):
ControllerBilling().create(user_id, g.settings.get('bonus', 0))
ControllerBilling().increase(user_id, amount)
return redirect(url_for('administrator_users.user_details', user_id=user_id))