|
|
- const express = require("express");
- const cp = require('child_process');
- const router= express.Router();
- const detect = require('detect-port');
- const oneport = require('oneport');
- const fs = require('fs');
-
-
- let User = require("../DBcollection/user.js");
- const detectPort = require("detect-port");
-
- let servers = new Set();
-
- router.get('/', function(req, res) {
-
- if (req.session.user) {
- // res.render('home', {
- // user: req.session.user,
- // title: 'HOME',
- // });
-
- oneport.acquire(function (err, port) {
- if (err) return console.error(err);
- console.log('port:', port);
-
- codeserver = cp.execFile('sudo', [
- 'PASSWORD=' + req.session.user.password,
-
- 'code-server',
-
- '--auth=password',
-
- '--bind-addr=0.0.0.0:' + port,
-
- '--user-data-dir=/root/codeserver/userdata/' + req.session.user.name + '/',
- '--extensions-dir=/root/codeserver/extensions/' + req.session.user.name + '/',
- '--config=/root/codeserver/config/' + req.session.user.name,
-
- '-e',
-
- '--home=http://106.75.254.18/logoff'
- ], function(error, stdout, stderr) {
- console.log(error + '\n' + stdout + '\n' + stderr);
- });
- servers.add({
- user: req.session.user,
- server: codeserver
- });
- dirpath = '/root/codeserver/user/' + req.session.user.name + '/';
- fs.mkdirSync(dirpath, { recursive: true });
- res.redirect('http://106.75.254.18:' + port + '/?folder=' + dirpath);
- });
- }
- else {
- res.render('home-signin', {
- user: req.session.user,
- title: "user Sign in",
- });
- }
-
- });
-
- router.get('/logoff', function(req, res) {
- servers.forEach(function(server) {
- if (server.user == req.session.user) {
- server.server.exit(0);
- servers.delete(server);
- }
- })
- delete req.session.user;
- res.redirect('/');
- })
-
- router.post('/', function(req, res) {
- let query = {
- name: req.body.name,
- password: req.body.password
- };
- User.findOne(query, function(err, user) {
- if (err) {
- res.end("some thing wrong")
- return console.log(err);
- }
- if (user != undefined) {
- req.session.user = user;
- // return res.render('home', {
- // title: "HOME",
- // user: req.session.user
- // });
- return res.redirect('/');
- }
- else {
- return res.render('home-signin', {
- title: "Sorry, no this user",
- user: req.session.user
- })
- }
- });
- });
-
- router.get('/signup', function(req, res) {
- res.render('home-signup', {
- user: req.session.user,
- title: "user Sign up",
- });
- });
-
- router.post('/signup', function(req, res) {
- User.find({name: req.body.name}, function(err, find) {
- if (find.length) {
- console.log(find);
- res.render("home-signup", {
- user: req.session.user,
- title: "Same User Name - plz try again",
- });
- }
- else {
- let user = new User();
-
- console.log(user);
- user.name = req.body.name;
- user.password = req.body.password;
-
- user.save(function(err) {
- if (err) {
- res.end("some thing wrong");
- return console.log(err);
- }
- req.session.user = user;
- res.redirect('/');
- });
- }
- });
- });
-
-
- module.exports = router;
|