60 lines
2.3 KiB
Python
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))
|