From 41082f7808a714d4297d563b85ec7f7dada19013 Mon Sep 17 00:00:00 2001 From: deflax Date: Fri, 14 Jul 2017 16:00:04 +0300 Subject: [PATCH] activate functions --- app/dmanager/forms.py | 8 ++++++++ app/dmanager/routes.py | 22 +++++++++++----------- app/smanager/forms.py | 8 ++++++++ app/smanager/routes.py | 21 ++++++++++----------- app/vmanager/routes.py | 20 ++++++++++++-------- 5 files changed, 49 insertions(+), 30 deletions(-) create mode 100644 app/dmanager/forms.py create mode 100644 app/smanager/forms.py diff --git a/app/dmanager/forms.py b/app/dmanager/forms.py new file mode 100644 index 0000000..8df64ba --- /dev/null +++ b/app/dmanager/forms.py @@ -0,0 +1,8 @@ +from flask_wtf import FlaskForm +from wtforms import StringField, PasswordField, BooleanField, SubmitField, SelectField, DecimalField +from wtforms import validators, ValidationError +from wtforms.fields.html5 import EmailField + +class ActivateForm(FlaskForm): + period = SelectField('Domain Period', choices=[('1 Year', 12), ('2 Years', 24)]) + submit = SubmitField('Activate') diff --git a/app/dmanager/routes.py b/app/dmanager/routes.py index fe48f51..54402d5 100644 --- a/app/dmanager/routes.py +++ b/app/dmanager/routes.py @@ -24,21 +24,21 @@ def activate(itemid=0): flash('Insufficient Funds') return redirect(url_for('uinvoice.addfunds')) - #work with disabled items only - result = current_user.inv_domains.filter_by(enabled=False) + #work with disabled deploys only + result = current_user.inv_domains.all() inventory = [] for invcls in result: inventory.extend([invcls.pid]) - #checks if current user owns this item - if not itemid in inventory: + + if current_user.is_administrator(): + current_app.logger.info('[ADMIN] Access override for domain id:{}'.format(itemid)) + elif not itemid in inventory: current_app.logger.warning('[{}] Access violation with domain id: {}'.format(current_user.email, itemid)) - #TODO: log ips abort(404) - else: - current_app.logger.info('[{}] Disabled services: {}'.format(current_user.email, inventory)) - abort(403) - #if current_user.confirmed and form.validate_on_submit(): - # client_id = current_user.pid - return render_template('dmanager/activate.html', page=page, form=form) + #current_app.logger.info('[{}] Disabled deployments: {}'.format(current_user.email, inventory)) + form = ActivateForm(period=Domain.query.filter_by(pid=itemid)) + if current_user.confirmed and form.validate_on_submit(): + current_app.logger.info('payment') + return render_template('dmanager/activate.html', form=form, itemid=itemid) diff --git a/app/smanager/forms.py b/app/smanager/forms.py new file mode 100644 index 0000000..4151179 --- /dev/null +++ b/app/smanager/forms.py @@ -0,0 +1,8 @@ +from flask_wtf import FlaskForm +from wtforms import StringField, PasswordField, BooleanField, SubmitField, SelectField, DecimalField +from wtforms import validators, ValidationError +from wtforms.fields.html5 import EmailField + +class ActivateForm(FlaskForm): + period = SelectField('Service Period', choices=[('1 Month', 1), ('3 Months', 3), ('6 Months', 6), ('1 Year', 12), ('2 Years', 24)]) + submit = SubmitField('Activate') diff --git a/app/smanager/routes.py b/app/smanager/routes.py index 272aeb9..d31d13e 100644 --- a/app/smanager/routes.py +++ b/app/smanager/routes.py @@ -24,22 +24,21 @@ def activate(itemid=0): flash('Insufficient Funds') return redirect(url_for('uinvoice.addfunds')) - #work with disabled items only + #work with disabled deploys only result = current_user.inv_services.all() - current_app.logger.info(result) inventory = [] for invcls in result: inventory.extend([invcls.pid]) - #checks if current user owns this item - if not itemid in inventory: + + if current_user.is_administrator(): + current_app.logger.info('[ADMIN] Access override for service id:{}'.format(itemid)) + elif not itemid in inventory: current_app.logger.warning('[{}] Access violation with service id: {}'.format(current_user.email, itemid)) - #TODO: log ips abort(404) - else: - current_app.logger.info('[{}] Disabled services: {}'.format(current_user.email, inventory)) - abort(403) - #if current_user.confirmed and form.validate_on_submit(): - # client_id = current_user.pid - return render_template('smanager/activate.html', page=page, form=form) + #current_app.logger.info('[{}] Disabled deployments: {}'.format(current_user.email, inventory)) + form = ActivateForm(period=Service.query.filter_by(pid=itemid)) + if current_user.confirmed and form.validate_on_submit(): + current_app.logger.info('payment') + return render_template('smanager/activate.html', form=form, itemid=itemid) diff --git a/app/vmanager/routes.py b/app/vmanager/routes.py index 5638331..43364c5 100644 --- a/app/vmanager/routes.py +++ b/app/vmanager/routes.py @@ -117,9 +117,13 @@ def deploy(product_id=None): return render_template('vmanager/deploy.html', page=page, form=form, product_id=product_id, product_pic=product_pic, product_name=product_name, product_description=product_description, product_recipe=product_recipe) -@vmanager.route('/activate/') +@smanager.route('/activate/', methods=['GET', 'POST']) @login_required -def activate(vmid=0): +def activate(itemid=0): + if current_user.wallet < 1: + flash('Insufficient Funds') + return redirect(url_for('uinvoice.addfunds')) + #work with disabled deploys only result = current_user.inv_deployments.all() inventory = [] @@ -127,16 +131,16 @@ def activate(vmid=0): inventory.extend([invcls.machine_id]) if current_user.is_administrator(): - current_app.logger.info('[ADMIN] Access override for cube id:{}'.format(vmid)) - elif not vmid in inventory: - current_app.logger.warning('[{}] Access violation with cube id: {}'.format(current_user.email, vmid)) + current_app.logger.info('[ADMIN] Access override for deployment id:{}'.format(itemid)) + elif not itemid in inventory: + current_app.logger.warning('[{}] Access violation with deployment id: {}'.format(current_user.email, itemid)) abort(404) #current_app.logger.info('[{}] Disabled deployments: {}'.format(current_user.email, inventory)) - form = ActivateForm(period=Deployment.query.filter_by(machine_id=vmid)) + form = ActivateForm(period=Deployment.query.filter_by(machine_id=itemid)) if current_user.confirmed and form.validate_on_submit(): - current_app.logger.info('meh') - return render_template('vmanager/activate.html', form=form, vmid=vmid) + current_app.logger.info('payment') + return render_template('vmanager/activate.html', form=form, itemid=itemid) @vmanager.route('//') @login_required