CH-J Server Managerserver management over SSH
Menu
Published source

CH-J Server Manager

Browse directories and files for a specific application release.

Download source ZIP
CH-J / Server Manager 368 files
core-20261017T201717Z-057348c4a70f Added: Date not recorded · Built:
index.html Added: Date not recorded 10.9 KB · 160 lines
Code Download file
1<!doctype html>
2<html lang="cs">
3<head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1">
6 <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; connect-src 'none'; img-src 'self' data:; object-src 'none'; base-uri 'none'; form-action 'none'">
7 <title>Users &amp; SSH</title>
8 <link rel="stylesheet" href="styles.css">
9</head>
10<body>
11 <header class="app-header">
12 <div><span class="eyebrow">CH-J PLUGIN</span><h1>Users &amp; SSH</h1><p id="pluginVersion">Plugin se načítá…</p></div>
13 <button id="closeButton" class="button ghost" type="button">Zavřít</button>
14 </header>
15 <main>
16 <section class="toolbar panel" aria-label="Relace a oprávnění">
17 <label>Aktivní SSH relace<select id="sessionSelect"><option value="">Žádná připojená relace</option></select></label>
18 <button id="refreshSessionsButton" class="button" type="button">Obnovit relace</button>
19 <div class="privilege" aria-live="polite"><span>Oprávnění relace</span><strong id="privilegeBadge" class="badge muted">neověřeno</strong></div>
20 <button id="reloadButton" class="button primary" type="button" disabled>Načíst účty</button>
21 <button id="elevatedButton" class="button" type="button" hidden>Načíst rozšířený stav (sudo)</button>
22 </section>
23 <p id="status" class="status" role="status" aria-live="polite">Vyberte připojený server.</p>
25 <div class="layout">
26 <section class="list panel" aria-label="Uživatelské účty">
27 <div class="list-head">
28 <input id="searchInput" type="search" placeholder="Hledat účet…" aria-label="Hledat účet">
29 <select id="filterSelect" aria-label="Filtr účtů">
30 <option value="regular">Běžné účty</option>
31 <option value="system">Systémové účty</option>
32 <option value="all">Všechny účty</option>
33 </select>
34 <button id="createButton" class="button primary" type="button" disabled>Nový uživatel</button>
35 </div>
36 <div class="table-wrap">
37 <table>
38 <thead><tr><th scope="col">Účet</th><th scope="col">UID</th><th scope="col">Stav</th><th scope="col">Sudo</th><th scope="col">SSH (CH-J)</th></tr></thead>
39 <tbody id="usersBody"><tr><td colspan="5" class="empty">Nejsou načtena žádná data.</td></tr></tbody>
40 </table>
41 </div>
42 <p id="inventoryNote" class="note"></p>
43 </section>
45 <section id="detailPanel" class="detail panel" aria-label="Detail účtu">
46 <div id="detailEmpty" class="empty-detail">Vyberte účet v seznamu.</div>
47 <div id="detailContent" hidden>
48 <div class="detail-head">
49 <div><h2 id="detailTitle"></h2><p id="detailSubtitle"></p></div>
50 <div id="detailBadges" class="badges"></div>
51 </div>
52 <div id="detailNotice" class="notice" hidden></div>
53 <div class="tabs" role="tablist" aria-label="Sekce účtu">
54 <button type="button" role="tab" id="tab-account" aria-controls="panel-account" aria-selected="true">Účet</button>
55 <button type="button" role="tab" id="tab-groups" aria-controls="panel-groups" aria-selected="false" tabindex="-1">Skupiny a sudo</button>
56 <button type="button" role="tab" id="tab-ssh" aria-controls="panel-ssh" aria-selected="false" tabindex="-1">SSH přístup</button>
57 <button type="button" role="tab" id="tab-keys" aria-controls="panel-keys" aria-selected="false" tabindex="-1">SSH klíče</button>
58 <button type="button" role="tab" id="tab-diagnostics" aria-controls="panel-diagnostics" aria-selected="false" tabindex="-1">Diagnostika</button>
59 </div>
60 <div id="panel-account" role="tabpanel" aria-labelledby="tab-account" class="tab-panel"></div>
61 <div id="panel-groups" role="tabpanel" aria-labelledby="tab-groups" class="tab-panel" hidden></div>
62 <div id="panel-ssh" role="tabpanel" aria-labelledby="tab-ssh" class="tab-panel" hidden></div>
63 <div id="panel-keys" role="tabpanel" aria-labelledby="tab-keys" class="tab-panel" hidden></div>
64 <div id="panel-diagnostics" role="tabpanel" aria-labelledby="tab-diagnostics" class="tab-panel" hidden></div>
65 </div>
66 </section>
67 </div>
68 </main>
70 <dialog id="sudoDialog" aria-labelledby="sudoTitle">
71 <form id="sudoForm" method="dialog">
72 <h3 id="sudoTitle">Vyžadováno sudo</h3>
73 <p id="sudoMessage"></p>
74 <label>Heslo pro sudo účtu <strong id="sudoUser"></strong><input id="sudoPassword" type="password" maxlength="1024" autocomplete="off" required></label>
75 <p id="sudoError" class="error" hidden></p>
76 <p class="hint">Heslo se použije jen pro tuto operaci, předá se serveru přes stdin SSH kanálu a nikam se neukládá.</p>
77 <div class="actions"><button type="button" class="button ghost" data-close>Zrušit</button><button type="submit" class="button primary">Pokračovat</button></div>
78 </form>
79 </dialog>
81 <dialog id="confirmDialog" aria-labelledby="confirmTitle">
82 <form id="confirmForm" method="dialog">
83 <h3 id="confirmTitle"></h3>
84 <p id="confirmMessage"></p>
85 <ul id="confirmDetails" class="details-list" hidden></ul>
86 <label id="confirmOptionLabel" class="check" hidden><input id="confirmOption" type="checkbox"> <span id="confirmOptionText"></span></label>
87 <label id="confirmTypedLabel" hidden>Pro potvrzení napište <strong id="confirmTypedValue"></strong><input id="confirmTyped" autocomplete="off"></label>
88 <div class="actions"><button type="button" class="button ghost" data-close>Zrušit</button><button id="confirmSubmit" type="submit" class="button primary">Potvrdit</button></div>
89 </form>
90 </dialog>
92 <dialog id="createDialog" aria-labelledby="createTitle">
93 <form id="createForm" method="dialog">
94 <h3 id="createTitle">Nový uživatel</h3>
95 <div class="form-grid">
96 <label>Uživatelské jméno<input id="createUsername" required maxlength="32" pattern="[a-z_][a-z0-9_\-]{0,31}" placeholder="novak" autocomplete="off"></label>
97 <label>Celé jméno (volitelné)<input id="createComment" maxlength="100" autocomplete="off"></label>
98 <label id="createDescriptionLabel" hidden>Popis (volitelné, max. 48 znaků)<input id="createDescription" maxlength="48" autocomplete="off"></label>
99 <label>Shell<select id="createShell"></select></label>
100 <label>Domovský adresář (volitelné)<input id="createHome" maxlength="255" placeholder="výchozí podle serveru" autocomplete="off"></label>
101 <label>Primární skupina<select id="createPrimary"><option value="">Vlastní skupina se jménem účtu</option></select></label>
102 <label>Doplňkové skupiny<select id="createGroups" multiple size="5"></select></label>
103 <label>Heslo účtu (volitelné)<input id="createPassword" type="password" maxlength="256" autocomplete="new-password"></label>
104 <label>Heslo znovu<input id="createPassword2" type="password" maxlength="256" autocomplete="new-password"></label>
105 </div>
106 <label class="check" id="createMakeHomeLabel"><input id="createMakeHome" type="checkbox" checked> vytvořit domovský adresář</label>
107 <label class="check"><input id="createAdmin" type="checkbox"> <span id="createAdminText">přidat do administrátorské skupiny (sudo/wheel podle serveru)</span></label>
108 <p class="hint" id="createHint">Bez hesla se účet může přihlásit jen SSH klíčem. Sudo práva se po vytvoření ověří pomocí <code>sudo -l</code>.</p>
109 <p id="createError" class="error" hidden></p>
110 <div class="actions"><button type="button" class="button ghost" data-close>Zrušit</button><button type="submit" class="button primary">Vytvořit účet</button></div>
111 </form>
112 </dialog>
114 <dialog id="valueDialog" aria-labelledby="valueTitle">
115 <form id="valueForm" method="dialog">
116 <h3 id="valueTitle"></h3>
117 <p id="valueMessage" class="hint"></p>
118 <label><span id="valueLabelText"></span><input id="valueInput" autocomplete="off"></label>
119 <label id="valueLabel2" hidden><span id="valueLabelText2"></span><input id="valueInput2" autocomplete="off"></label>
120 <label id="valueOptionLabel" class="check" hidden><input id="valueOption" type="checkbox"> <span id="valueOptionText"></span></label>
121 <p id="valueError" class="error" hidden></p>
122 <div class="actions"><button type="button" class="button ghost" data-close>Zrušit</button><button type="submit" class="button primary">Uložit</button></div>
123 </form>
124 </dialog>
126 <dialog id="keyDialog" aria-labelledby="keyTitle">
127 <form id="keyForm" method="dialog">
128 <h3 id="keyTitle">Přidat Ed25519 klíč</h3>
129 <label>Veřejný klíč (OpenSSH)<textarea id="keyText" rows="4" spellcheck="false" placeholder="ssh-ed25519 AAAA… komentář"></textarea></label>
130 <div class="inline-actions">
131 <button id="keyImportButton" type="button" class="button">Importovat .pub soubor…</button>
132 <input id="keyFile" type="file" accept=".pub,text/plain" hidden>
133 <button id="keyGenerateButton" type="button" class="button">Vygenerovat nový pár…</button>
134 </div>
135 <fieldset id="keyGenerateFields" hidden>
136 <legend>Nový pár Ed25519 na tomto počítači</legend>
137 <label>Komentář<input id="keyGenComment" maxlength="200" autocomplete="off"></label>
138 <label>Passphrase soukromého klíče (doporučeno)<input id="keyGenPassphrase" type="password" maxlength="1024" autocomplete="new-password"></label>
139 <p class="hint">Soukromý klíč se uloží pouze lokálně do zvoleného souboru. Na server se odešle jen veřejný klíč.</p>
140 <button id="keyGenRun" type="button" class="button primary">Vygenerovat a uložit soukromý klíč…</button>
141 </fieldset>
142 <p id="keyInfo" class="hint" hidden></p>
143 <p id="keyError" class="error" hidden></p>
144 <div class="actions"><button type="button" class="button ghost" data-close>Zrušit</button><button id="keySubmit" type="submit" class="button primary">Přidat klíč</button></div>
145 </form>
146 </dialog>
148 <dialog id="probeDialog" aria-labelledby="probeTitle">
149 <form id="probeForm" method="dialog">
150 <h3 id="probeTitle">Ověření nového přihlášení</h3>
151 <p>Měníte SSH přístup účtu, kterým je CH-J právě připojeno. Po aplikování změny Core zkusí nové SSH přihlášení; když selže, konfigurace se automaticky vrátí.</p>
152 <label><span id="probeLabel">Heslo SSH profilu</span><input id="probeSecret" type="password" maxlength="1024" autocomplete="off" required></label>
153 <p class="hint">Údaj se použije jen pro testovací přihlášení a neukládá se.</p>
154 <div class="actions"><button type="button" class="button ghost" data-close>Zrušit</button><button type="submit" class="button primary">Pokračovat</button></div>
155 </form>
156 </dialog>
158 <script src="index.js"></script>
159</body>
160</html>
SHA-256257c7fa3944932ccab0763e3c4f4ab606261decd1ba93c4b8ccaa74e335f0eba

CH-J Proprietary Software License 1.14 · Source is provided under the CH-J Proprietary Software License 1.14. Its availability does not change the license terms or grant additional rights.

Archive SHA-256cf4455b698f0f28e456a37b1834976a0194d8486acb7101052d59a838745cca3
Files