acc.disabled = status db.session.commit() return "OK" @bp.route("/api/account/<int:acc_id>", methods=["DELETE"]) @login_required @perm_manager.require('admin') def api_account_delete(acc_id: int) -> Response: db.session.query(Account).filter(Account.id == acc_id).delete() db.session.commit() return flask.jsonify(status="OK") add_menu_entry('accounts.accounts', lazy_gettext('Accounts'), perm_manager.get_permission('accounts_edit').can) add_menu_entry('accounts.account_self', lazy_gettext('Own Settings'), lambda: True) @login_required @perm_manager.require('settings_access') def alt_verification_handler(code: str) -> None: # this throws exception and exists this function if current_user.type != 'account': flask.abort(403, "You are not on an account.") auth = authorize(code) access_token = auth['access_token'] refresh_token = auth['refresh_token']
db.session.commit() flash(gettext("Thank You for your feedback!"), "info") return flask.redirect(url_for('.index')) @feedback.route("/settings", methods=["GET"]) @perm_view.require(http_exception=401) def settings() -> Response: # only give tickets that are not "closed" and not older then 90 days time_90days_ago = datetime.utcnow() - timedelta(90) tickets = db.session.query(Ticket).filter((Ticket.time > time_90days_ago) & (Ticket.state == "new"))\ .order_by(desc(Ticket.time)).all() return render_template("feedback/settings.html", tickets=tickets) @feedback.route("/settings", methods=["POST"]) @perm_edit.require(http_exception=401) def change_status() -> Response: ticket_id = int(request.form.get('ticketID')) new_status = request.form.get('ticketStatus') ticket = db.session.query(Ticket).get(ticket_id) ticket.state = new_status db.session.commit() return make_response("OK") add_menu_entry('feedback.settings', lazy_gettext('Feedback'), perm_view.can)
return render_template("settings/mail/index.html", mails=mails) @bp.route("/change/<string:type_>", methods=["POST"]) @login_required @perm_edit.require() def change(type_): if type_ == "tbadge": mail = request.form.get('mail') topic = request.form.get('topic') sset_tbadge_mail(mail) sset_tbadge_topic(topic) flash(gettext("T-Badge mail set!"), 'success') elif type_ == "resident": mail = request.form.get('mail') topic = request.form.get('topic') sset_resident_mail(mail) sset_resident_topic(topic) flash(gettext("Resident mail set!"), 'success') elif type_ == "default": mail = request.form.get('mail') topic = request.form.get('topic') sset_other_mail(mail) sset_other_topic(topic) flash(gettext("Other mail set!"), 'success') return redirect(url_for('settings_mail.index')) add_menu_entry('settings_mail.index', lazy_gettext('IG Mail Settings'), lambda: perm_edit.can())
group: WaitlistGroup = db.session.query(WaitlistGroup).get(gid) logger.info("%s cleared waitlist %s", current_user.username, group.displayName) waitlist_ids = [] for wl in group.waitlists: waitlist_ids.append(wl.id) db.session.query(WaitlistEntry)\ .filter(WaitlistEntry.waitlist_id.in_(waitlist_ids))\ .delete(synchronize_session=False) db.session.commit() flash(gettext("Waitlists were cleared!"), "danger") return redirect(url_for('.fleet')) @bp.route("/fleet/status/set/", methods=["POST"]) @login_required @perm_management.require(http_exception=401) def fleet_status_global_set() -> str: action = request.form['action'] if action == "set_name_scramble": should_scrable = not (request.form.get('scramble', 'off') == 'off') config.scramble_names = should_scrable return make_response("OK", 200) add_menu_entry('fleetoptions.fleet', lazy_gettext('Fleet Settings'), perm_management.can)
from flask.globals import request from flask.helpers import flash, url_for from werkzeug.utils import redirect from waitlist.permissions import perm_manager bp = Blueprint('settings_inserts', __name__) logger = logging.getLogger(__name__) perm_manager.define_permission('inserts_edit') @bp.route("/") @login_required @perm_manager.require('inserts_edit') def index() -> Response: data = {'header': sget_insert('header')} return render_template("settings/inserts.html", inserts=data) @bp.route("/change/<string:type_>", methods=["POST"]) @login_required @perm_manager.require('inserts_edit') def change(type_) -> Response: if type_ == "header": content = request.form.get('content') sset_insert('header', content) flash("Header Insert Saved") return redirect(url_for('settings_inserts.index')) add_menu_entry('settings_inserts.index', 'Page Inserts', perm_manager.get_permission('inserts_edit').can)
perm = get_permission() @bp.route("/") @login_required @perm.require() def index(): motds = { 'hq': sget_motd_hq(), 'vg': sget_motd_vg() } return render_template("settings/fleet_motd/index.html", motds=motds) @bp.route("/change/<string:type_>", methods=["POST"]) @login_required @perm.require() def change(type_): if type_ == "hq": motd = request.form.get('motd') sset_motd_hq(motd) flash(gettext("HQ MOTD Saved"), 'success') elif type_ == "vg": motd = request.form.get('motd') sset_motd_vg(motd) flash(gettext("VG MOTD Saved"), 'success') return redirect(url_for('settings_fmotds.index')) add_menu_entry('settings_fmotds.index', lazy_gettext('Fleet MOTD'), perm.can)
@bp.route("/whitelist_change_single", methods=["POST"]) @login_required @perm_manager.require('bans_edit') def whitelist_change_single(): action = request.form['change'] # whitelist, unwhitelist target = request.form['target'] # name of target target = target.strip() if action == "whitelist": reason = request.form['reason'] # reason for ban whitelist_by_name(target, reason) elif action == "unwhitelist": unwhitelist_by_name(target) return redirect(url_for(".withelist")) @bp.route("/whitelist_unlist", methods=["POST"]) @login_required @perm_manager.require('bans_edit') def whitelist_unlist(): target = request.form['target'] # name of target target = target.strip() unwhitelist_by_name(target) return redirect(url_for(".whitelist")) add_menu_entry('bans.bans', 'Bans', perm_manager.get_permission('bans_edit').can) add_menu_entry('bans.whitelist', 'Whitelist', perm_manager.get_permission('bans_edit').can)
elif action == "unwhitelist": target = int(target) unwhitelist_by_id(target) except ApiException as e: flash(gettext("Could not execute action, ApiException %(ex)s", ex=e), 'danger') return redirect(url_for(".whitelist")) @bp.route("/whitelist_unlist", methods=["POST"]) @login_required @perm_manager.require('bans_edit') def whitelist_unlist(): target = request.form['target'] # name of target target = target.strip() try: target = int(target) unwhitelist_by_id(target) except ApiException as e: flash(gettext("Could not execute action, ApiException %(ex)s", ex=e), 'danger') return redirect(url_for(".whitelist")) add_menu_entry('bans.bans', lazy_gettext('Bans'), perm_manager.get_permission('bans_edit').can) add_menu_entry('bans.whitelist', lazy_gettext('Whitelist'), perm_manager.get_permission('bans_edit').can)
perm = get_permission() @bp.route("/") @login_required @perm.require() def index(): motds = { 'hq': sget_motd_hq(), 'vg': sget_motd_vg() } return render_template("settings/fleet_motd/index.html", motds=motds) @bp.route("/change/<string:type_>", methods=["POST"]) @login_required @perm.require() def change(type_): if type_ == "hq": motd = request.form.get('motd') sset_motd_hq(motd) flash("HQ MOTD Saved") elif type_ == "vg": motd = request.form.get('motd') sset_motd_vg(motd) flash("VG MOTD Saved") return redirect(url_for('settings_fmotds.index')) add_menu_entry('settings_fmotds.index', 'Fleet MOTD', perm.can)
from waitlist.blueprints.settings import add_menu_entry from waitlist.permissions import perm_manager perm_manager.define_permission('calendar_event_add') add_menu_entry('calendar_settings.get_index', 'Events', perm_manager.get_permission('calendar_event_add').can)
return render_template("settings/mail/index.html", mails=mails) @bp.route("/change/<string:type_>", methods=["POST"]) @login_required @perm_edit.require() def change(type_): if type_ == "tbadge": mail = request.form.get('mail') topic = request.form.get('topic') sset_tbadge_mail(mail) sset_tbadge_topic(topic) flash("T-Badge mail set!") elif type_ == "resident": mail = request.form.get('mail') topic = request.form.get('topic') sset_resident_mail(mail) sset_resident_topic(topic) flash("Resident mail set!") elif type_ == "default": mail = request.form.get('mail') topic = request.form.get('topic') sset_other_mail(mail) sset_other_topic(topic) flash("Other mail set!") return redirect(url_for('settings_mail.index')) add_menu_entry('settings_mail.index', 'IG Mail Settings', lambda: perm_edit.can())
from flask import Blueprint, render_template from flask_login import login_required from flask_babel import lazy_gettext from waitlist.blueprints.settings import add_menu_entry from waitlist.permissions import perm_manager from waitlist.utility.config import overview_show_count_for_approvals bp = Blueprint('settings_overview', __name__) perm_manager.define_permission('settings_access') perm_access = perm_manager.get_permission('settings_access') @bp.route("/") @login_required @perm_access.require(http_exception=401) def overview(): return render_template( 'settings/overview.html', show_count_for_approvals=overview_show_count_for_approvals) add_menu_entry('settings_overview.overview', lazy_gettext('Overview'), lambda: True)
@bp.route("/add_role", methods=['POST']) @login_required @perm_manager.require(StaticPermissions.ADMIN) def add_role() -> Response: role_name: str = request.form['role_name'] role_display_name: str = request.form['role_display_name'] PermissionManager.add_role(role_name, role_display_name) send_role_created(add_role, current_user.id, role_name, role_display_name) return redirect(url_for('.view_permissions'), code=303) add_menu_entry( 'settings_permissions.view_permissions', lazy_gettext('Permissions'), lambda: perm_manager.get_permission(StaticPermissions.ADMIN).can()) @bp.route("/remove_role", methods=['POST']) @login_required @perm_manager.require(StaticPermissions.ADMIN) def remove_role() -> Response: role_id: int = int(request.form['role_id']) role: Role = PermissionManager.get_role(role_id) if role is None: flash( gettext('Role with id=%(role_id)d was not found, failed to delete', role_id=role_id), "warning") else: role_display_name: str = role.displayName
db.session.add(ticket) db.session.commit() flash("Thank You for your feedback!", "info") return flask.redirect(url_for('.index')) @feedback.route("/settings", methods=["GET"]) @perm_view.require(http_exception=401) def settings() -> Response: # only give tickets that are not "closed" and not older then 90 days time_90days_ago = datetime.utcnow() - timedelta(90) tickets = db.session.query(Ticket).filter((Ticket.time > time_90days_ago) & (Ticket.state == "new"))\ .order_by(desc(Ticket.time)).all() return render_template("feedback/settings.html", tickets=tickets) @feedback.route("/settings", methods=["POST"]) @perm_edit.require(http_exception=401) def change_status() -> Response: ticket_id = int(request.form.get('ticketID')) new_status = request.form.get('ticketStatus') ticket = db.session.query(Ticket).get(ticket_id) ticket.state = new_status db.session.commit() return make_response("OK") add_menu_entry('feedback.settings', 'Feedback', perm_view.can)
for type_id in rest_typeids: invtype = db.session.query(InvType).get(type_id) check.check_rest_types.append(invtype) for group_id in rest_invgroupids: check.check_rest_groups.append( db.session.query(InvGroup).get(group_id)) for mgroup_id in rest_mgroupids: check.check_rest_market_groups.append( db.session.query(MarketGroup).get(mgroup_id)) db.session.commit() return redirect( url_for('.collection_edit', collection_id=check.collection.checkCollectionID)) @bp.route('/check/delete', methods=['POST']) @login_required @perm_manager.require('ship_assignment_edit') def check_delete(): check_id = int(request.form['check_id']) check = db.session.query(ShipCheck).get(check_id) db.session.delete(check) db.session.commit() return redirect(request.referrer) add_menu_entry('ship_assignment.ship_assignments', lazy_gettext('Ship Classification'), perm_manager.get_permission('ship_assignment_edit').can)
return redirect(url_for('.sde_settings')) @bp.route("/sde/update/layouts", methods=["POST"]) @login_required @perm_access.require(http_exception=401) def update_layouts(): f = request.files['file'] if f and (f.filename.rsplit('.', 1)[1] == "bz2" or f.filename.rsplit('.', 1)[1] == "csv"): filename = secure_filename(f.filename) dest_name = path.join(app.config['UPLOAD_FOLDER'], filename) if path.isfile(dest_name): os.remove(dest_name) f.save(dest_name) # start the update sde.update_layouts(dest_name) flash("Layouts were updated!", "success") return redirect(url_for('.sde_settings')) @bp.route("/sde") @login_required @perm_access.require(http_exception=401) def sde_settings(): return render_template("settings/sde.html") add_menu_entry('sde.sde_settings', 'Static Data Import', perm_access.can)
db.session.query(WaitlistEntry).filter( (WaitlistEntry.waitlist_id == group.xupwlID) | (WaitlistEntry.waitlist_id == group.logiwlID) | (WaitlistEntry.waitlist_id == group.dpswlID) | (WaitlistEntry.waitlist_id == group.sniperwlID)).delete() else: db.session.query(WaitlistEntry).filter( (WaitlistEntry.waitlist_id == group.xupwlID) | (WaitlistEntry.waitlist_id == group.logiwlID) | (WaitlistEntry.waitlist_id == group.dpswlID) | (WaitlistEntry.waitlist_id == group.sniperwlID) | (WaitlistEntry.waitlist_id == group.otherwlID)).delete() db.session.commit() flash("Waitlists were cleared!", "danger") return redirect(url_for('.fleet')) @bp.route("/fleet/status/set/", methods=["POST"]) @login_required @perm_management.require(http_exception=401) def fleet_status_global_set() -> str: action = request.form['action'] if action == "set_name_scramble": should_scrable = not (request.form.get('scramble', 'off') == 'off') config.scramble_names = should_scrable return "OK" add_menu_entry('fleetoptions.fleet', 'Fleet Settings', perm_management.can)
db.session.add(ts) db.session.commit() # set as active ts if there was none before if sget_active_ts_id() is None: sset_active_ts_id(ts.teamspeakID) change_connection() elif action == "remove" and perm_edit_server.can(): teamspeak_id = int(request.form['teamspeakID']) db.session.query(TeamspeakDatum).filter( TeamspeakDatum.teamspeakID == teamspeak_id).delete() active_id = sget_active_ts_id() if active_id is not None and active_id == teamspeak_id: sset_active_ts_id(None) change_connection() db.session.commit() elif action == "set": teamspeak_id = int(request.form['teamspeakID']) active_id = sget_active_ts_id() sset_active_ts_id(teamspeak_id) if active_id is None: change_connection() else: flask.abort(400) return redirect(url_for("teamspeak.teamspeak")) if not disable_teamspeak: add_menu_entry('teamspeak.teamspeak', lazy_gettext('TS Settings'), perm_view_server.can)
cache_item = __cache.get_cache_item(name) if cache_item is None: result = [] row = [] for idx in range(0, column_count): row.append('Calculation In Progress...') result.append(row) else: result = cache_item['data'] # but trigger a recalculation in a greenlet def execute_query(data_name, cc, qq, ct): db_result = qq() if db_result is None: __cache.add_item_to_cache(data_name, __create_cache_item([], ct)) return result_ = [] for db_row in db_result: row_list = [] for idx_cc in range(0, cc): row_list.append(db_row[idx_cc]) result_.append(row_list) __cache.add_item_to_cache(data_name, __create_cache_item(result_, ct)) db.session.remove() Greenlet.spawn(execute_query, name, column_count, query, cache_time_seconds) return result add_menu_entry('settings_overview.overview', 'Overview', lambda: True)
@bp.route("/sde/update/layouts", methods=["POST"]) @login_required @perm_access.require(http_exception=401) def update_layouts(): f = request.files['file'] if f and (f.filename.rsplit('.', 1)[1] == "bz2" or f.filename.rsplit('.', 1)[1] == "csv"): filename = secure_filename(f.filename) dest_name = path.join(app.config['UPLOAD_FOLDER'], filename) if path.isfile(dest_name): os.remove(dest_name) f.save(dest_name) # start the update sde.update_layouts(dest_name) flash(gettext("Layouts were updated!"), "success") return redirect(url_for('.sde_settings')) @bp.route("/sde") @login_required @perm_access.require(http_exception=401) def sde_settings(): return render_template("settings/sde.html") add_menu_entry('sde.sde_settings', lazy_gettext('Static Data Import'), perm_access.can)