def index(): # This function deliberately doesn't have a @login_required parameter because we want to run a check for a # 'first-visit' type scenario, in order to create the administrator. provider = Provider() zones = provider.dns_zones() users = provider.users() if users.count() == 0: # Looks like we need to setup the administrator. return redirect(url_for('install.index')) if not current_user.is_authenticated: return redirect(url_for('auth.login')) search = provider.search() results = search.search_from_request(request) aliases = provider.aliases() return render_template( 'home/index.html', results=results['results'], params=results['params'], page_url='home.index', zone_count=zones.count(user_id=current_user.id), aliases=aliases.get_dict( None if current_user.admin else current_user.id))
def alias_edit_save(alias_id): provider = Provider() aliases = provider.aliases() ip = request.form['ip'].strip() name = request.form['name'].strip() if len(name) == 0: flash('Please enter an alias name', 'error') return redirect(url_for('dns.alias_index')) elif not aliases.is_valid_ip_or_range(ip): flash('Please enter a valid IP address', 'error') return redirect(url_for('dns.alias_index')) alias_with_same_ip = aliases.get(None, user_id=current_user.id, ip=ip) if alias_with_same_ip and alias_with_same_ip.id != alias_id: flash('An alias with this IP address already exists', 'error') return redirect(url_for('dns.alias_index')) user_id = None if current_user.admin else current_user.id if alias_id > 0: if not aliases.can_access(alias_id, user_id): flash('You cannot access the selected alias', 'error') return redirect(url_for('dns.alias_index')) alias = aliases.update(alias_id, ip=ip, name=name) else: alias = aliases.save(current_user.id, ip, name) flash('Alias Created' if alias_id == 0 else 'Alias Updated', 'success') return redirect(url_for('dns.alias_index'))
def alias_index(): provider = Provider() aliases = provider.aliases() user_id = None if current_user.admin else current_user.id return render_template('dns/aliases/index.html', aliases=aliases.all(user_id=user_id, order_column='name', order_by='asc'))
def alias_delete(alias_id): provider = Provider() aliases = provider.aliases() user_id = None if current_user.admin else current_user.id if not aliases.can_access(alias_id, user_id): flash('You cannot access the selected alias', 'error') return redirect(url_for('dns.alias_index')) if not aliases.delete(alias_id, user_id=user_id): flash('Could not delete alias', 'error') return redirect(url_for('dns.alias_index')) flash('Alias deleted', 'success') return redirect(url_for('dns.alias_index'))
def index(): provider = Provider() search = provider.search() aliases = provider.aliases() results = search.search_from_request(request) advanced = int(request.args.get('advanced', 0)) == 1 return render_template( 'logs/index.html', results=results['results'], params=results['params'], filters=results['filters'], page_url='logs.index', advanced=advanced, aliases=aliases.get_dict( None if current_user.admin else current_user.id))
def alias_edit(alias_id): provider = Provider() aliases = provider.aliases() autofill_ip = request.args.get('ip', '').strip() if len(autofill_ip) > 0 and not aliases.is_valid_ip_or_range(autofill_ip): flash('Invalid IP address', 'error') return redirect(url_for('dns.alias_index')) user_id = None if current_user.admin else current_user.id if alias_id > 0: if not aliases.can_access(alias_id, user_id): flash('You cannot access the selected alias', 'error') return redirect(url_for('dns.alias_index')) alias = aliases.get(alias_id, user_id=user_id) else: alias = None return render_template('dns/aliases/edit.html', alias_id=alias_id, alias=alias, autofill_ip=autofill_ip)