Commit 878e68ad authored by Nicolas Wavrant's avatar Nicolas Wavrant

runner: reads recovery code from knowledge0 file

parent d8e79b2b
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# vim: set et sts=2: # vim: set et sts=2:
# pylint: disable-msg=W0311,C0301,C0103,C0111,W0141,W0142 # pylint: disable-msg=W0311,C0301,C0103,C0111,W0141,W0142
import ConfigParser
import json import json
import logging import logging
import md5 import md5
...@@ -112,6 +113,15 @@ def saveSession(config, account): ...@@ -112,6 +113,15 @@ def saveSession(config, account):
return str(e) return str(e)
def getRcode(config):
parser = ConfigParser.ConfigParser()
try:
parser.read(config['knowledge0_cfg'])
return parser.get('private', 'recovery-code')
except (ConfigParser.NoSectionError, IOError) as e:
return None
def createNewUser(config, name, passwd): def createNewUser(config, name, passwd):
htpasswdfile = os.path.join(config['etc_dir'], '.htpasswd') htpasswdfile = os.path.join(config['etc_dir'], '.htpasswd')
if os.path.exists(htpasswdfile): if os.path.exists(htpasswdfile):
......
...@@ -16,7 +16,7 @@ from slapos.runner.process import killRunningProcess ...@@ -16,7 +16,7 @@ from slapos.runner.process import killRunningProcess
from slapos.runner.utils import (checkSoftwareFolder, configNewSR, from slapos.runner.utils import (checkSoftwareFolder, configNewSR,
createNewUser, getProfilePath, createNewUser, getProfilePath,
listFolder, getBuildAndRunParams, listFolder, getBuildAndRunParams,
getProjectTitle, getSession, getProjectTitle, getRcode, getSession,
getSlapStatus, getSvcStatus, getSlapStatus, getSvcStatus,
getSvcTailProcess, isInstanceRunning, getSvcTailProcess, isInstanceRunning,
isSoftwareRunning, isSoftwareReleaseReady, isText, isSoftwareRunning, isSoftwareReleaseReady, isText,
...@@ -552,7 +552,7 @@ def updateBuildAndRunConfig(): ...@@ -552,7 +552,7 @@ def updateBuildAndRunConfig():
#update user account data #update user account data
def updateAccount(): def updateAccount():
code = request.form['rcode'].strip() code = request.form['rcode'].strip()
recovery_code = open(os.path.join(app.config['etc_dir'], ".rcode"), "r").read() recovery_code = getRcode(app.config)
if code != recovery_code: if code != recovery_code:
return jsonify(code=0, result="Your password recovery code is not valid!") return jsonify(code=0, result="Your password recovery code is not valid!")
...@@ -583,8 +583,7 @@ def configAccount(): ...@@ -583,8 +583,7 @@ def configAccount():
account.append(request.form['email'].strip()) account.append(request.form['email'].strip())
account.append(request.form['name'].strip()) account.append(request.form['name'].strip())
code = request.form['rcode'].strip() code = request.form['rcode'].strip()
recovery_code = open(os.path.join(app.config['etc_dir'], ".rcode"), recovery_code = getRcode(app.config)
"r").read().strip()
if code != recovery_code: if code != recovery_code:
return jsonify(code=0, result="Your password recovery code is not valid!") return jsonify(code=0, result="Your password recovery code is not valid!")
result = saveSession(app.config, account) result = saveSession(app.config, account)
...@@ -595,8 +594,7 @@ def configAccount(): ...@@ -595,8 +594,7 @@ def configAccount():
def addUser(): def addUser():
code = request.form['rcode'].strip() code = request.form['rcode'].strip()
recovery_code = open(os.path.join(app.config['etc_dir'], ".rcode"), recovery_code = getRcode(app.config)
"r").read().strip()
if code != recovery_code: if code != recovery_code:
return jsonify(code=0, result="Your password recovery code is not valid!") return jsonify(code=0, result="Your password recovery code is not valid!")
if createNewUser(app.config, request.form['username'], if createNewUser(app.config, request.form['username'],
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment