def post(self): form = DeployServerForm() if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) ip = request.remote_addr # Create POST request to murmur-rest api to create a new server welcome_msg = render_template("mumble/temp_welcome_message.html", gen_uuid=gen_uuid) payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': settings.DEFAULT_MAX_USERS, 'registername': settings.DEFAULT_CHANNEL_NAME } server_id = murmur.create_server_by_location(form.location.data, payload) # Create database entry s = Server() s.duration = form.duration.data # s.duration = 1 s.password = form.password.data s.uuid = gen_uuid s.mumble_instance = server_id s.mumble_host = murmur.get_murmur_hostname(form.location.data) s.ip = ip db.session.add(s) db.session.commit() # Send task to delete server on expiration tasks.delete_server.apply_async([gen_uuid], eta=s.expiration) return redirect(url_for('ServerView:get', id=s.uuid)) except: import traceback db.session.rollback() traceback.print_exc() return render_template('index.html', form=form) return render_template('index.html', form=form)
def post(self): form = DeployCustomServerForm() form.region.choices = get_active_hosts_by_type('free') if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) # Create POST request to murmur-rest api to create a new server welcome_msg = "Welcome. This is a custom GuildBit Mumble instance. View details on this server by " \ "<a href='http://guildbit.com/server/%s'>clicking here.</a>" % gen_uuid payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': form.slots.data, 'registername': form.channel_name.data } server_id = murmur.create_server_by_region( form.region.data, payload) # Create database entry s = Server() s.mumble_host = murmur.get_murmur_hostname(form.region.data) s.duration = 0 s.password = form.password.data s.uuid = gen_uuid s.mumble_instance = server_id s.status = 'active' s.type = 'custom' db.session.add(s) db.session.commit() return redirect('/admin/servers/%s' % s.uuid) except: import traceback db.session.rollback() traceback.print_exc() return render_template('admin/server.html', form=form) return render_template('admin/server.html', form=form)
def post(self): form = DeployCustomServerForm() if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) # Create POST request to murmur-rest api to create a new server welcome_msg = "Welcome. This is a custom GuildBit Mumble instance. View details on this server by " \ "<a href='http://guildbit.com/server/%s'>clicking here.</a>" % gen_uuid payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': form.slots.data, 'registername': form.channel_name.data } server_id = murmur.create_server_by_location(form.location.data, payload) # Create database entry s = Server() s.mumble_host = murmur.get_murmur_hostname(form.location.data) s.duration = 0 s.password = form.password.data s.uuid = gen_uuid s.mumble_instance = server_id s.type = 'custom' db.session.add(s) db.session.commit() return redirect('/admin/servers/%s' % s.id) except: import traceback db.session.rollback() traceback.print_exc() return render_template('admin/server.html', form=form) return render_template('admin/server.html', form=form)
def create(self, id): form = DeployTokenServerForm() token = Token.query.filter_by(uuid=id).first_or_404() package = get_package_by_name(token.package) ctx = { 'slots': package.get('slots', None), 'duration': package.get('duration', None) } if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) # Create POST request to murmur-rest api to create a new server welcome_msg = render_template("mumble/upgrade_welcome_message.html", gen_uuid=gen_uuid) # Initialize payload for murmur-rest request payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': ctx['slots'], 'registername': form.channel_name.data } # Create virtual murmur server and set SuperUser password server_id = murmur.create_server_by_location(form.location.data, payload) murmur.set_superuser_password(form.location.data, form.superuser_password.data, server_id) # Create database entry s = Server() s.duration = ctx['duration'] s.password = form.password.data s.uuid = gen_uuid s.type = 'upgrade' s.mumble_instance = server_id s.mumble_host = murmur.get_murmur_hostname(form.location.data) s.cvp_uuid = str(uuid.uuid4()) # Expire token token.activation_date = datetime.datetime.utcnow() token.active = False db.session.add(s) db.session.add(token) db.session.commit() # Send task to delete server on expiration tasks.delete_server.apply_async([gen_uuid], eta=s.expiration) # Send email to user if email was set if token.email is not None: email_ctx = { 'url': 'http://guildbit.com/server/%s' % gen_uuid, 'package': token.package, 'expiration': 'expiration here', 'superuser_password': form.superuser_password.data } msg = Message( "Guildbit - Server Created", sender=settings.DEFAULT_MAIL_SENDER, recipients=[token.email]) msg.html = render_template("emails/payment_server_created.html", ctx=email_ctx) mail.send(msg) return redirect(url_for('ServerView:get', id=s.uuid)) except: import traceback db.session.rollback() traceback.print_exc() return render_template('payment/create.html', form=form, token=token, ctx=ctx)
def create(self, id): form = DeployTokenServerForm() form.region.choices = get_active_hosts_by_type('upgrade') token = Token.query.filter_by(uuid=id).first_or_404() package = Package.query.filter_by(id=token.package_id).first_or_404() ctx = { 'slots': package.slots, 'duration': package.duration } if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) # Create POST request to murmur-rest api to create a new server welcome_msg = render_template("mumble/upgrade_welcome_message.html", gen_uuid=gen_uuid) # Initialize payload for murmur-rest request payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': ctx['slots'], 'registername': form.channel_name.data } # Create virtual murmur server and set SuperUser password server_id = murmur.create_server_by_region(form.region.data, payload) murmur.set_superuser_password(form.region.data, form.superuser_password.data, server_id) # Create database entry s = Server() s.duration = ctx['duration'] s.password = form.password.data s.uuid = gen_uuid s.type = 'upgrade' s.mumble_instance = server_id s.mumble_host = murmur.get_murmur_hostname(form.region.data) s.cvp_uuid = str(uuid.uuid4()) s.status = 'active' # Expire token token.activation_date = datetime.datetime.utcnow() token.active = False token.email = form.email.data db.session.add(s) db.session.add(token) db.session.commit() # Send task to delete server on expiration tasks.delete_server.apply_async([gen_uuid], eta=s.expiration) # Send email to user if email was set if form.email.data is not None: email_ctx = { 'url': 'http://guildbit.com/server/%s' % gen_uuid, 'package': token.package, 'expiration': 'expiration here', 'superuser_password': form.superuser_password.data } msg = Message( "Guildbit - Server Created", sender=settings.DEFAULT_MAIL_SENDER, recipients=[form.email.data]) msg.html = render_template("emails/payment_server_created.html", ctx=email_ctx) try: mail.send(msg) except: import traceback traceback.print_exc() return redirect(url_for('ServerView:get', uuid=s.uuid)) except: import traceback db.session.rollback() traceback.print_exc() return render_template('payment/create.html', form=form, token=token, ctx=ctx)
def post(self): # Set admin's IP. x_forwarded_for = request.headers.getlist('X-Forwarded-For') ip = x_forwarded_for[0] if x_forwarded_for else request.remote_addr ip = ip.split(',')[0] # Flash message if user is on banlist. banned = Ban.query.filter_by(ip=ip).first() if banned: banned.last_accessed = datetime.utcnow() db.session.add(banned) db.session.commit() flash("User banned! Reason: %s" % banned.reason) return redirect('/') form = DeployServerForm() form.duration.choices = duration_choices() form.region.choices = get_active_hosts_by_type('free') if form.validate_on_submit(): try: # Generate UUID gen_uuid = str(uuid.uuid4()) # Create database entry s = Server() s.duration = form.duration.data s.password = form.password.data s.uuid = gen_uuid s.mumble_instance = None s.mumble_host = None s.status = "queued" s.mumble_host = murmur.get_murmur_hostname(form.region.data) s.ip = ip db.session.add(s) db.session.commit() # Setup the payload and send to create_server queue. welcome_msg = render_template( "mumble/temp_welcome_message.html", gen_uuid=gen_uuid) payload = { 'password': form.password.data, 'welcometext': welcome_msg, 'users': settings.DEFAULT_MAX_USERS, 'registername': settings.DEFAULT_CHANNEL_NAME } # Send task to create server tasks.create_server.apply_async( [gen_uuid, form.region.data, payload]) # Store server_uuid cookie and redirect. response = make_response( redirect(url_for('ServerView:get', uuid=s.uuid))) response.set_cookie('server_uuid', s.uuid) return response except: import traceback db.session.rollback() traceback.print_exc() return render_template('index.html', form=form) return render_template('index.html', form=form)