def configure(): if not is_user_logged(c.WEBUSER): redirect('/login') if not path.exists(c.CONFIG_FILE): m.add_message(_('Configuration file not found.')) data.CONFIG_FIELDSETS = create_configure_fieldsets() return configure_html()
def backup_restore_submit(): uploaded_file = request.files.get('uploaded_file') if uploaded_file is not None: restore(uploaded_file) else: m.add_message(_('Nothing was uploaded, choose a file first.')) redirect('/backup_restore')
def PhoneVerificationView(request, **kwargs): if request.method == "POST": username = request.POST['username'] user = User.objects.get(username=username) form = PhoneVerificationForm(request.POST) if form.is_valid(): verification_code = request.POST['one_time_password'] response = verify_sent_code(verification_code, user) print(response.text) data = json.loads(response.text) if data['success'] == True: login(request, user) if user.phone_number_verified is False: user.phone_number_verified = True user.save() return redirect('/dashboard') else: messages.add_message(request, messages.ERROR, data['message']) return render(request, " ", {'user': user}) else: context = { 'user': user, 'form': form, } return render(request, " ", context) elif request.method == "GET": try: user = kwargs['user'] return render(request, " ", {'user': user}) except: return HttpResponse("Not Allowed")
def login_submit(): set_interface_language(request.forms.get('language')) update_app_config_value('language', request.forms.get('language')) if check_security(request.forms.get('username'), request.forms.get('password')): c.WEBUSER = request.forms.get('username') redirect('/configure') m.add_message(_('The credentials supplied are not valid.')) redirect('/login')
def create_configure_fieldsets(): row1 = ['input_row', _('Identifier'), 'identifier', 'text', c.read_config_value('identifier')] row2 = ['select_row', _('Language(s)'), 'language', c.read_config_value('language'), '', [['', ''], ['English', 'English'], ['English French', 'English - French'], ['French', 'French'], ['French English', 'French - English']]] row3 = ['input_row', _('Context'), 'context', 'text', c.read_config_value('context')] time_zones = load_time_zones() if len(time_zones) < 2: m.add_message(_('Time zones file not found or empty.')) row4 = ['select_row', _('Time zone'), 'timezone', c.read_config_value('timezone'), '', time_zones] row5 = ['button_row', _('Backup firmware'), '', 'button', _('Download'), 'onclick="download_firmware(\'' + firmware_file_name() + '\');"', firmware_file_name()] row6 = ['input_row', _('Update firmware'), 'firmware_version', 'file', '', 'accept=".gz"'] row7 = ['input_row', _('Hostname'), 'hostname', 'text', c.read_config_value('hostname')] row8 = ['input_row', _('Domain name'), 'domain_name', 'text', c.read_config_value('domain_name')] row9 = ['select_row', _('Connection type'), 'connection_type', c.read_config_value('connection_type'), 'onchange="change_connection_type(this);"', [['dhcp', 'DHCP'], ['static', 'Static']]] row10 = ['ip_row', _('IP address'), 'ip', c.read_config_value('ip'), 'connection_type'] row11 = ['ip_row', _('Subnet mask'), 'subnet', c.read_config_value('subnet'), 'connection_type'] row12 = ['ip_row', _('Default gateway'), 'gateway', c.read_config_value('gateway'), 'connection_type'] row13 = ['ip_row', _('Static DNS 1'), 'dns1', c.read_config_value('dns1'), 'connection_type'] row14 = ['ip_row', _('Static DNS 2'), 'dns2', c.read_config_value('dns2'), 'connection_type'] row15 = ['input_row', _('Admin access'), 'admin_access', 'checkbox', 'enable', is_checked(c.read_config_value('admin_access'), 'enable'), '', _('Enabled')] row16 = ['input_row', _('Utility access'), 'utility_access', 'radio', c.read_config_value('utility_access'), '', [['utility_access_1', 'http'], ['utility_access_2', 'https']]] row17 = ['input_row', _('SNMP'), 'SNMP', 'checkbox', 'enable', is_checked(c.read_config_value('SNMP'), 'enable'), '', _('Enabled')] row18 = ['input_row', _('Web login name'), 'Web_Login_Name', 'text', c.read_config_value('Web_Login_Name')] row19 = ['input_row', _('Web login password'), 'Web_Login_password', 'text', c.read_config_value('Web_Login_password')] row20 = ['input_row', _('SSH'), 'SSH', 'checkbox', 'enable', is_checked(c.read_config_value('SSH'), 'enable'), '', _('Enabled')] row21 = ['input_row', _('SSH login name'), 'SSH_Login_Name', 'text', c.read_config_value('SSH_Login_Name')] row22 = ['input_row', _('SSH login password'), 'SSH_Login_password', 'text', c.read_config_value('SSH_Login_password')] row23 = ['input_row', _('Syslog'), 'syslog', 'checkbox', 'enable', is_checked(c.read_config_value('syslog'), 'enable'), '', _('Enabled')] row24 = ['input_row', _('Max size'), 'max_size', 'text', c.read_config_value('max_size')] row25 = ['input_row', _('Report by mail'), 'report_by_mail', 'checkbox', 'enable', is_checked(c.read_config_value('report_by_mail'), 'enable'), '', _('Enabled')] row26 = ['input_row', _('Sender'), 'mail_sender', 'text', c.read_config_value('mail_sender')] row27 = ['input_row', _('Receiver'), 'mail_receiver', 'text', c.read_config_value('mail_receiver')] row28 = ['input_row', _('Subject'), 'mail_subject', 'text', c.read_config_value('mail_subject')] row29 = ['input_row', _('SMTP server'), 'mail_smtp_server', 'text', c.read_config_value('mail_smtp_server')] row30 = ['input_row', _('SMTP'), 'SMTP', 'text', c.read_config_value('SMTP')] row31 = ['input_row', _('Log count'), 'MAIL_Log_Count', 'text', c.read_config_value('MAIL_Log_Count')] row32 = ['input_row', _('Interval'), 'MAIL_Interval', 'text', c.read_config_value('MAIL_Interval')] row33 = ['input_row', _('SMTP user'), 'MAIL_Smtp_User', 'text', c.read_config_value('MAIL_Smtp_User')] row34 = ['input_row', _('Proxy'), 'proxy', 'text', c.read_config_value('proxy')] row35 = ['input_row', _('Outbound proxy'), 'outbound_proxy', 'text', c.read_config_value('outbound_proxy')] row36 = ['input_row', _('Registration'), 'registration', 'checkbox', 'enable', is_checked(c.read_config_value('registration'), 'enable'), '', _('Enabled')] row37 = ['input_row', _('Registration expires'), 'registration_expires', 'text', c.read_config_value('registration_expires'), 'onkeypress="return integers_only(event);"', '', _('seconds')] row38 = ['input_row', _('Use outbound proxy'), 'use_OBP', 'checkbox', 'enable', is_checked(c.read_config_value('use_OBP'), 'enable'), '', _('Enabled')] row39 = ['input_row', _('Send calls without registration'), 'send_calls_without_reg', 'checkbox', 'enable', is_checked(c.read_config_value('send_calls_without_reg'), 'enable'), '', _('Enabled')] row40 = ['input_row', _('Receive calls without registration'), 'receive_calls_without_reg', 'checkbox', 'enable', is_checked(c.read_config_value('receive_calls_without_reg'), 'enable'), '', _('Enabled')] row41 = ['input_row', _('CID'), 'CID', 'text', c.read_config_value('CID')] row42 = ['input_row', _('UID'), 'UID', 'text', c.read_config_value('UID')] row43 = ['input_row', _('Password'), 'password', 'text', c.read_config_value('password')] row44 = ['input_row', _('Dial plan'), 'dialplan', 'text', c.read_config_value('dialplan')] return [[_('Identifier'), 'identifier', [row1, row2]], [_('Global'), 'global', [row3, row4, row5, row6]], [_('Network'), 'network', [row7, row8, row9, row10, row11, row12, row13, row14]], [_('Web access'), 'web_access', [row15, row16, row17, row18, row19, row20, row21, row22]], [_('Log'), 'log', [row23, row24, row25, row26, row27, row28, row29, row30, row31, row32, row33]], [_('Proxy and registration'), 'proxy and registration', [row34, row35, row36, row37, row38, row39, row40]], [_('Subscriber'), 'subscriber', [row41, row42, row43, row44]]]
def new_message(id): if session["csrf_token"] != request.form["csrf_token"]: return abort(403) e = 0 content = request.form["content"] if not users.logged(): e = 3 print("false") elif len(content) > 500: e = 1 elif len(content) == 0: e = 2 elif 0 < len(content) <= 500: messages.add_message(content, id) return redirect("/thread/" + str(id) + "/0/" + str(e))
def form_valid(self, form): user = form.save() username = self.request.POST['username'] password = self.request.POST['password1'] user = authenticate(username=username, password=password) try: response = send_verification_code(user) except Exception as e: from django.core.checks import messages messages.add_message( self.request, messages.ERROR, 'verification code not sent. \n' 'Please re-register.') return redirect('/register') data = json.loads(response.text) if data['success'] == False: messages.add_message(self.request, messages.ERROR, data['message']) return redirect('/register') else: kwargs = {'user': user} self.request.method = 'GET' return PhoneVerificationView(self.request, **kwargs)
def write_configuration(request, firmware_version): if path.exists(c.CONFIG_FILE + '.bak'): remove(c.CONFIG_FILE + '.bak') if path.exists(c.CONFIG_FILE): rename(c.CONFIG_FILE, c.CONFIG_FILE + '.bak') m.add_message(_('A copy of your configuration file was saved as: ') + c.CONFIG_FILE + '.bak') f = open_file(c.CONFIG_FILE, 'w') if f is None: m.add_message(_('Unexpected error: could not open configuration file, configuration was not saved.')) return flag_network_ok = True if request.forms.get('connection_type') == 'static': if validate_ip_address(concat_ip_cells(request, 'ip')) and validate_ip_address(concat_ip_cells(request, 'subnet')) and validate_ip_address(concat_ip_cells(request, 'gateway')): if not address_in_network(concat_ip_cells(request, 'gateway'), get_network_in_cidr(concat_ip_cells(request, 'ip'), concat_ip_cells(request, 'subnet'))): m.add_message(_('Invalid combination of ip, subnet and gateway, addresses not saved.')) flag_network_ok = False num = 1 for fieldset in data.CONFIG_FIELDSETS: if num == 1: f.write('[' + fieldset[1] + ']' + c.CR) else: f.write(c.CR + '[' + fieldset[1] + ']' + c.CR) num = 0 for row in fieldset[2]: if row[0] == 'input_row': if row[3] == 'text': f.write(row[2] + '=' + request.forms.get(row[2]) + c.CR) elif row[3] == 'checkbox': f.write(write_checkbox(row[2], request.forms.get(row[2]), 'disable') + c.CR) elif row[3] == 'radio': f.write(write_radio(row[2], request.forms.get(row[2])) + c.CR) elif row[3] == 'file': f.write(row[2] + '=' + firmware_version + c.CR) elif row[0] == 'select_row': f.write(write_select(row[2],request.forms.get(row[2])) + c.CR) elif row[0] == 'ip_row': if row[4] != 'connection_type': #for now we write them f.write(write_ip(request, row[2], row[1]) + c.CR) elif request.forms.get('connection_type') == 'static': if flag_network_ok: f.write(write_ip(request, row[2], row[1]) + c.CR) elif row[2] != 'ip' and row[2] != 'subnet' and row[2] != 'gateway': f.write(write_ip(request, row[2], row[1]) + c.CR) f.close() m.add_message('<font color="#373">' +_('Configuration saved') + ', ' + strftime("%c") + '.</font>')
def write_app_config(request, language): if path.exists(c.APP_CONFIG_FILE + '.bak'): remove(c.APP_CONFIG_FILE + '.bak') if path.exists(c.APP_CONFIG_FILE): rename(c.APP_CONFIG_FILE, c.APP_CONFIG_FILE + '.bak') m.add_message(_('A copy of your configuration file was saved as: ') + c.APP_CONFIG_FILE + '.bak') f = open_file(c.APP_CONFIG_FILE, 'w') if f is None: m.add_message(_('Unexpected error: could not open configuration file, configuration was not saved.')) return f.write ('<?xml version=\'1.0\' encoding=\'utf-8\'?>' + c.CR + '<settings>' + c.CR) f.write('\t<languages>' + c.CR) while len(request.forms.getall('languages')) < len(l.LANGUAGES): index = -1 found = False for lang in l.LANGUAGES: index += 1 if lang[0] != 'en': found = False for select_language in request.forms.getall('languages'): if lang[0] == select_language: found = True break if not found: break if not found: del l.LANGUAGES[index] if request.forms.get('code') != '' and request.forms.get('label') != '': l.LANGUAGES.append([request.forms.get('code'), request.forms.get('label')]) if not path.exists('locale/' + request.forms.get('code')): copy_directory('locale/en', 'locale/' + request.forms.get('code')) m.add_message(_('A new folder was created: locale/') + request.forms.get('code')) m.add_message(_('Fill the msgstr fields in LC_MESSAGES/wem.pot with translations in ') + request.forms.get('label') + (', then run create_mo_from_po.sh')) m.add_message(_('Finally, restart the service.')) for lang in l.LANGUAGES: f.write('\t\t<language value="' + lang[0] + '" label="' + lang[1] + '"/>' + c.CR) f.write('\t</languages>' + c.CR) f.write('\t<language value="' + language + '"/>' + c.CR) for fieldset in data.ADMIN_FIELDSETS: for row in fieldset[2]: if row[0] == 'input_row': if row[3] == 'text' and row[2] != 'code' and row[2] != 'label': f.write('\t<' + row[2] + ' value="' + request.forms.get(row[2]) + '"/>' + c.CR) elif row[3] == 'checkbox': write_checkbox_for_admin(f, row[2], request.forms.get(row[2]), 'disabled') elif row[0] == 'select_row' and row[2] != 'languages': f.write('\t<' + row[2] + ' value="' + request.forms.get(row[2]) + '"/>' + c.CR) f.write('</settings>' + c.CR) f.close() m.add_message('<font color="#373">' +_('Application configuration saved') + ', ' + strftime("%c") + '.</font>')
def restore(uploaded_file): try: uploaded_file.save(c.TEMP_CONFIG_FILE, True) f1 = open_file(c.TEMP_CONFIG_FILE, 'r') if f1 is None: m.add_message(_('Unexpected error: could not open temporary configuration file, file not uploaded.')) return output = '' for line in f1.readlines(): line = line.rstrip(linesep) if line != '' and '=' in line: param, value = line.split('=') if param != '': for fieldset in data.CONFIG_FIELDSETS: found = False for row in fieldset[2]: if row[2] == param: output += param + '=' + value + c.CR found = True break if found: break f1.close() if path.exists(c.TEMP_CONFIG_FILE): remove(c.TEMP_CONFIG_FILE) if len(output) < 2: m.add_message(_('No relevant data in uploaded file, file not uploaded.')) return if path.exists(c.CONFIG_FILE): if path.exists(c.CONFIG_FILE + '.bak'): remove(c.CONFIG_FILE + '.bak') rename(c.CONFIG_FILE, c.CONFIG_FILE + '.bak') m.add_message(_('A copy of your configuration file was saved as: ') + c.CONFIG_FILE + '.bak') f2 = open_file(c.CONFIG_FILE, 'w') if f2 is None: m.add_message(_('Unexpected error: could not open configuration file, file not uploaded.')) return f2.write(output) f2.close() m.add_message('<font color="#373">' + _('Configuration file uploaded') + ', ' + strftime("%c") + '.</font>') except: m.add_message(_('Invalid file format, file not uploaded.')) try: f1.close() f2.close() if path.exists(c.TEMP_CONFIG_FILE): remove(c.TEMP_CONFIG_FILE) except: return
def is_user_logged(user): if user == "Anonymous": m.add_message(_("Login required.")) return False return True
def write_ip(request, field, label): if not is_ip_blank(request, field): if not validate_ip_address(concat_ip_cells(request, field)): m.add_message(label + _(' was not saved because it was invalid.')) else: return field + '=' + concat_ip_cells(request, field)