mirror of https://github.com/itsmrval/accessGate
dynamic user for authorized keys and bug fix
parent
7b0a757fc7
commit
092ab264bc
7
index.js
7
index.js
|
|
@ -12,16 +12,13 @@ serverService = require("./services/server.service");
|
|||
const User = require('./model/user.model')
|
||||
const Key = require('./model/key.model')
|
||||
const Member = require("./model/member.model");
|
||||
|
||||
const {makeAdmin} = require("./services/users.service");
|
||||
const app = express();
|
||||
|
||||
|
||||
databaseService.sync().then(() => {
|
||||
console.log("Database ready");
|
||||
})
|
||||
|
||||
|
||||
|
||||
app.use(bodyParser.urlencoded({ extended: false }))
|
||||
|
||||
// parse application/json
|
||||
|
|
@ -78,7 +75,7 @@ app.get("/login", (req, res) => {
|
|||
res.render('login')
|
||||
});
|
||||
|
||||
userService.makeAdmin("itsmrval")
|
||||
|
||||
|
||||
app.use('/admin/', require('./routes/admin.route'));
|
||||
app.use('/auth/', require('./routes/auth.route'));
|
||||
|
|
|
|||
|
|
@ -20,7 +20,9 @@ router.get("/", (req, res) => {
|
|||
if (server.hostname === req.query.server) {
|
||||
secret_display.content = server.tmp
|
||||
secret_display.url = process.env.APP_URL
|
||||
secret_display.name = server.hostname
|
||||
secret_display.name = server.hostname,
|
||||
secret_display.user = server.username
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ router.get("/:server", async (req, res) => {
|
|||
raw += '# ' + x + '\n' + result[x] + '\n\n'
|
||||
}
|
||||
res.send(raw)
|
||||
server.lastPull =
|
||||
server.save()
|
||||
|
||||
})
|
||||
} else {
|
||||
res.send("invalid request")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
const {default: axios} = require("axios");
|
||||
const User = require('../model/user.model')
|
||||
const userService = require("./users.service");
|
||||
|
||||
async function getToken(code) {
|
||||
var client_id = process.env.GITHUB_CLIENT_ID
|
||||
|
|
@ -37,6 +38,11 @@ async function syncUser(user) {
|
|||
avatar: user.avatar_url,
|
||||
displayName: user.name
|
||||
}).then(() => {
|
||||
User.findAll().then((users) => {
|
||||
if (users.length === 1) {
|
||||
userService.makeAdmin(user.login)
|
||||
}
|
||||
})
|
||||
console.log('user ' + user.login + ' added to database')
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,8 +27,6 @@ async function addGroup(name) {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function delGroup(name) {
|
||||
Group.findOne({where: { name: name}}).then((result) => {
|
||||
if (result && regexp_space.test(name)) {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
⚠️ The installation command <b>will not be shown again later.</b> ⚠️
|
||||
</div>
|
||||
<div class="alert alert-success" role="alert">
|
||||
Run the command below to login the server <br><code>bash <( curl -s https://raw.githubusercontent.com/itsmrval/accessgate/scripts/agent.sh ) '<%= locals.secret.url %>' <%= locals.secret.name %> <%= locals.secret.content %> </code>
|
||||
Run the command below to login the server <br><code>bash <( curl -s https://raw.githubusercontent.com/itsmrval/accessgate/scripts/agent.sh ) '<%= locals.secret.url %>' <%= locals.secret.name %> <%= locals.secret.content %> <%= locals.secret.user %> </code>
|
||||
</div>
|
||||
<% } %>
|
||||
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
<td><%= server.ip %></td>
|
||||
<td><%= server.username %></td>
|
||||
|
||||
<td><%= server.lastPull %> <% if (!server.lastPull) { %>never<% } %></td>
|
||||
<td><%= server.lastPull.toISOString().replace(/T/, ' ').replace(/\..+/, '') %> <% if (!server.lastPull) { %>never<% } %></td>
|
||||
<td style="text-align: right;"> <a class="btn btn-sm btn-danger" href="/admin/servers/delete/<%= server.hostname %>"><i class="far fa-trash-alt"></i></a></td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
|
|
|
|||
|
|
@ -26,9 +26,7 @@
|
|||
<% keys.forEach(function (key) { %>
|
||||
<tr>
|
||||
<td><%= key.name %></td>
|
||||
|
||||
<td><%= key.content %></td>
|
||||
|
||||
<td style="text-align: right;"><a class="btn btn-sm btn-danger" href="/admin/users/<%= user.id %>/deleteKey/<%= key.name %>"><i class="far fa-trash-alt"></i></button></td>
|
||||
</tr>
|
||||
<% }) %>
|
||||
|
|
@ -45,6 +43,26 @@
|
|||
<div class="mb-3"><button class="btn btn-primary btn-sm" type="submit">Add key</button></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card shadow col-md-6">
|
||||
<div class="card-header py-3">
|
||||
<p class="text-primary m-0 fw-bold">Other</p>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<form method="POST" action="/admin/users/<%= user.id %>/updateRole/">
|
||||
<div class="mb-3">
|
||||
<input type="checkbox" id="admin" name="admin" <% if (user.admin) {%> checked <% }%> />
|
||||
<label for="scales">Admin permissions</label>
|
||||
</div>
|
||||
<div class="mb-3"></div>
|
||||
<div class="mb-3"><button class="btn btn-primary btn-sm" type="submit">Save</button></div>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,20 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
function resizeTextArea(textarea) {
|
||||
const { style, value } = textarea;
|
||||
style.height = style.minHeight = 'auto';
|
||||
style.minHeight = `${ Math.min(textarea.scrollHeight + 4, parseInt(textarea.style.maxHeight)) }px`;
|
||||
style.height = `${ textarea.scrollHeight + 4 }px`;
|
||||
}
|
||||
|
||||
const textarea = document.getElementById('textarea');
|
||||
|
||||
textarea.addEventListener('input', () => {
|
||||
resizeTextArea(textarea);
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -63,7 +63,10 @@
|
|||
<div class="col me-2">
|
||||
<h6 class="mb-0 text-primary"><strong><%= x %></strong></h6><span class="text-xs"><i class="fas fa-clock"> </i> <b>Last pull:</b> <%= servers[x].lastPull %></span>
|
||||
</div>
|
||||
<div class="col-auto"><code><%= servers[x].username %>@<%= servers[x].ip %></code></div>
|
||||
<div class="col"><code><%= servers[x].username %>@<%= servers[x].ip %></code></div>
|
||||
|
||||
<div class="col-auto"><a href="ssh://<%= servers[x].username %>@<%= servers[x].ip %>" class="btn btn-sm btn-primary"><i class="fas fa-terminal"></i> Connect</a></div>
|
||||
|
||||
</div>
|
||||
</li>
|
||||
<% } %>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<tr>
|
||||
<td><%= key.name %></td>
|
||||
|
||||
<td><%= key.content %></td>
|
||||
<td><textarea class="form-control" rows="1" disabled><%= key.content %></textarea></td>
|
||||
|
||||
<td style="text-align: right;"><a class="btn btn-sm btn-danger" href="/keys/delete/<%= key.name %>"><i class="far fa-trash-alt"></i></button></td>
|
||||
</tr>
|
||||
|
|
|
|||
Loading…
Reference in New Issue