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)
@app.route("/createUser", methods=["GET"])
def createUser():
user = subprocess.Popen(["useradd","-m",request.headers.get("X-User")])
user.communicate()[0]
return jsonify(user.returncode)
with open("users.nix", "r+") as file:
appendData = " #--- \"" + request.headers["X-User"] + "\" = {\n isNormalUser = true;\n hashedPassword = \"" + request.headers["X-HashedPassword"] + "\";\n };"
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"])
def deleteUser():
user = subprocess.Popen(["userdel",request.headers.get("X-User")])
@ -77,5 +83,23 @@ def requestDiskDecryption():
return jsonify(
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__':
app.run(port=5050, debug=False)

6
requirements.txt Normal file → Executable file
View File

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

0
setup.py Normal file → Executable file
View File