Exemple #1
0
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()
Exemple #2
0
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')
Exemple #3
0
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")
Exemple #4
0
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')
Exemple #5
0
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]]]
Exemple #6
0
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))
Exemple #7
0
    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)
Exemple #8
0
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>')
Exemple #9
0
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>')
Exemple #10
0
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
Exemple #11
0
def is_user_logged(user):
    if user == "Anonymous":
        m.add_message(_("Login required."))
        return False
    return True
Exemple #12
0
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)