Self-serve proxy username+password change, config-driven dedicated pricing

This commit is contained in:
drjones
2026-09-19 19:38:01 -07:00
parent 05b5a4aa61
commit 15c103eb65
2 changed files with 63 additions and 4 deletions

View File

@@ -30,8 +30,15 @@
<p class="muted" style="font-size:12px;margin-bottom:0">Proxy password is unique to you. Use it for proxy auth, not your web password.</p>
<button class="btn btn-ghost" id="testbtn" onclick="testProxy()" style="margin-top:12px">⚡ Test my proxy</button>
<pre class="code" id="testout" style="display:none;margin-top:10px"></pre>
<form method="post" action="/dashboard/rotate" style="margin-top:14px">
<input type="submit" value="Rotate proxy password">
<form method="post" action="/dashboard/credentials" style="margin-top:14px">
<label>Proxy username</label>
<input type="text" name="username" value="{{ user.username }}" autocomplete="off">
<label>Proxy password</label>
<div class="copy" style="margin:0">
<input type="text" name="proxy_password" id="pwfield" placeholder="leave blank to keep" autocomplete="off">
<button type="button" onclick="randompw()">⚡ random</button>
</div>
<input type="submit" value="Update proxy credentials">
</form>
</div>
</div>
@@ -105,6 +112,12 @@
<script>
function copy(el){ el.select(); document.execCommand('copy'); }
function randompw(){
const chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
let s = '';
for (let i=0;i<18;i++) s += chars[Math.floor(Math.random()*chars.length)];
document.getElementById('pwfield').value = s;
}
async function testProxy(){
const btn = document.getElementById('testbtn');
const out = document.getElementById('testout');