Added user management. Added SSH service management

pull/2/head
Illia Chub 2021-05-26 19:35:20 +03:00
parent 66a613c4f0
commit 858b8e4698
4 changed files with 30 additions and 7 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
users.nix

30
main.py Normal file → Executable file
View File

@ -49,9 +49,15 @@ def upgradeSystem():
return jsonify(upgradeResult.returncode) return jsonify(upgradeResult.returncode)
@app.route("/createUser", methods=["GET"]) @app.route("/createUser", methods=["GET"])
def createUser(): def createUser():
user = subprocess.Popen(["useradd","-m",request.headers.get("X-User")]) with open("users.nix", "r+") as file:
user.communicate()[0] appendData = " #--- \"" + request.headers["X-User"] + "\" = {\n isNormalUser = true;\n hashedPassword = \"" + request.headers["X-HashedPassword"] + "\";\n };"
return jsonify(user.returncode) for i, line in enumerate(file):
if line.startswith("#---"):
file[i] = file[i].strip + appendData + "\n"
file.seek(0)
for line in file:
file.write(line)
@app.route("/deleteUser", methods=["DELETE"]) @app.route("/deleteUser", methods=["DELETE"])
def deleteUser(): def deleteUser():
user = subprocess.Popen(["userdel",request.headers.get("X-User")]) user = subprocess.Popen(["userdel",request.headers.get("X-User")])
@ -77,5 +83,23 @@ def requestDiskDecryption():
return jsonify( return jsonify(
status=decryptionService.returncode status=decryptionService.returncode
) )
@app.route("/enableSSH", methods=["POST"])
def enableSSH():
readOnlyFileDescriptor = open("/etc/nixos/configuration.nix", "rt")
readWriteFileDescriptor = open("/etc/nixos/configuration.nix", "wt")
for line in readOnlyFileDescriptor:
readWriteFileDescriptor.write(line.replace("services.openssh.enable = false;", "services.openssh.enable = true;"))
readWriteFileDescriptor.close()
readOnlyFileDescriptor.close()
return jsonify(
status=0
)
if __name__ == '__main__': if __name__ == '__main__':
app.run(port=5050, debug=False) app.run(port=5050, debug=False)

6
requirements.txt Normal file → Executable file
View File

@ -1,6 +1,4 @@
wheel
flask flask
flask_restful flask_restful
pandas pandas
ast
subprocess
os

0
setup.py Normal file → Executable file
View File