autenticazione utente, gestione password

This commit is contained in:
Marco Locatelli
2021-04-08 11:45:19 +02:00
parent 1e5845a302
commit 6a446993cc
4 changed files with 222 additions and 162 deletions
+1
View File
@@ -84,3 +84,4 @@
2021-04-01 15:20:08.570454 Caught error: name 'now' is not defined
2021-04-01 15:21:11.244154 Caught error: name 'now' is not defined
2021-04-02 09:27:42.781175 Caught error: Connection closed by server.
2021-04-08 11:19:48.305652 Caught error: Error 111 connecting to 127.0.0.1:6379. Connection refused.
+2
View File
@@ -29,6 +29,8 @@ redSrv0.set(redSampleFreq,startingSampleFreq)
#se non c'è un valore nei campi di redis, popolo il db
redSrv0.set('SETTINGS:LOG:STATUS',0)
redisTime = 'RTDATA:TIME:SRV'
if redSrv0.get('SETTINGS:PASSWORD:CURRENT') is None:
redSrv0.set('SETTINGS:PASSWORD:CURRENT',"-")
if redSrv0.get('SETTINGS:FOLDER:CURRENT') is None:
redSrv0.set('SETTINGS:FOLDER:CURRENT', "default")
if redSrv0.get('SETTINGS:SELECTED_CH') is None:
+26 -1
View File
@@ -112,6 +112,21 @@ def api_channels_all():
@flaskApp.route("/api/v1/channels/current", methods=['GET'])
def api_channels_current():
numCh = getRedisVal('SETTINGS:SELECTED_CH')
savedPwd = getRedisVal('SETTINGS:PASSWORD:CURRENT')
if savedPwd is None:
redSrv0.set('SETTINGS:PASSWORD:CURRENT',"")
# tutto false
showDiv1 = 0
showDiv2 = 0
showDiv3 = 0
if savedPwd == "":
showDiv1 = 1
elif savedPwd == "viaZavaritt":
showDiv3 = 1
elif savedPwd == "viaZavaritt152":
showDiv2 = 1
showDiv3 = 1
#funzione api_channels_all: legge direttamente da redis, ritorna jsonify
result = {
'numCh' : numCh,
@@ -125,7 +140,10 @@ def api_channels_current():
'MinOut' : getRedisVal('SETTINGS:OUT:MIN:'+str(numCh)),
'MaxIn' : getRedisVal('SETTINGS:IN:MAX:'+str(numCh)),
'MinIn' : getRedisVal('SETTINGS:IN:MIN:'+str(numCh)),
'CurrentWorkFolder' : getRedisVal('SETTINGS:FOLDER:CURRENT')
'CurrentWorkFolder' : getRedisVal('SETTINGS:FOLDER:CURRENT'),
'ShowDiv01' : showDiv1,
'ShowDiv02' : showDiv2,
'ShowDiv03' : showDiv3,
}
# restituisce in formato json i dati letti da redis
return jsonify(result)
@@ -206,6 +224,13 @@ def data_delete():
redSrv0.set('SETTINGS:FOLDER:CURRENT', "not set")
return redirect("/settings")
@flaskApp.route("/api/v1/setup/passwordInput", methods=['POST'])
def insertPassword():
#funzione inserimento password
currentPassword = request.form['PasswordForm']
redSrv0.set('SETTINGS:PASSWORD:CURRENT', currentPassword, ex=5*60)
return redirect("/settings")
@flaskApp.route("/api/v1/setup/saveInMin", methods=['PUT'])
def setupInMin():
# devo leggere il channel attualmente selezionato
+193 -161
View File
@@ -24,6 +24,22 @@
$("#MinIn").html(result.MinIn);
$("#MaxIn").html(result.MaxIn);
$("#CurrentFolder").html(result.CurrentWorkFolder);
// inizio nascondendo
$("#Div1").show();
$("#Div2").hide();
$("#Div3").hide();
// if(result.ShowDiv01 == "0")
// {
// $("#Div1").hide();
// }
if(result.ShowDiv02 == "1")
{
$("#Div2").show();
}
if(result.ShowDiv03 == "1")
{
$("#Div3").show();
}
}});
}
@@ -121,8 +137,24 @@
</script>
<div class="container-fluid">
<div class="row my-2 px-3">
<div class="card col-6">
<div class="row" id="Div1">
<div class="card my-2 col-12">
<div class="card-header">
<strong>Autenticazione utente</strong>
</div>
<div class="card-body">
<form class="col-12" method="POST" action="/api/v1/setup/passwordInput">
<div class="row input-group my-2">
<span class="input-group-text">Password: &nbsp;</span>
<input type="text" class=" form-control" id="PasswordForm" name="PasswordForm"></input>
<input type="submit" value="LOGIN" class="btn btn-success"></input>
</div>
</form>
</div>
</div>
</div>
<div class="row" id="Div2">
<div class="card my-2 col-6">
<div class="row card-header">
<div class="col-6">
<strong>Canale A</strong>
@@ -130,26 +162,26 @@
<div class="col-6">
<div class="form-group">
<select class="form-control" id="SelChannelA" onchange="setChannelA(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
</div>
</div>
<div class="card-body text-center">
Nativo: <span id="ChannelA"></span>
<br>
<strong>Scalato: <span id="OutputA"></span>
</strong>
Nativo: <span id="ChannelA"></span>
<br>
<strong>Scalato: <span id="OutputA"></span>
</strong>
</div>
</div>
<div class="card col-6">
<div class="card my-2 col-6">
<div class="row card-header">
<div class="col-6">
<strong>Canale B</strong>
@@ -157,167 +189,167 @@
<div class="col-6">
<div class="form-group">
<select class="form-control" id="SelChannelB" onchange="setChannelB(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
</div>
</div>
<div class="card-body text-center">
Nativo: <span id="ChannelB"></span>
<br>
Nativo: <span id="ChannelB"></span>
<br>
<strong>Scalato: <span id="OutputB"></span>
</strong>
</div>
</div>
</div>
</div>
<div class="card my-2">
<div class="card-header">
<div class="row">
<div class="col-5">
<i class="fas fa-table mr-1"></i>
<strong>Impostazioni scala canale</strong>
</div>
<div class="col-3 text-right">
<label for="sel1"> Channel n°</label>
</div>
<div class="col-4 text-right">
<div class="form-group">
<select class="form-control" id="ddlChannels" onchange="setChannel(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
</div>
</div>
<h5>
<div class="card-body text-center">
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-4">MIN</div>
<div class="col-4">Attuale</div>
<div class="col-4">MAX</div>
<div class="row" id="Div3">
<div class="card my-2 col-12">
<div class="card-header">
<div class="row">
<div class="col-5">
<i class="fas fa-table mr-1"></i>
<strong>Impostazioni scala canale</strong>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2">IN</div>
<div class="col-8">
<div class="row">
<div class="col-4"><span class="badge badge-secondary text-center" id="MinIn">000</span></div>
<div class="col-4"><span class="badge badge-warning text-center" id="CurrIn">000</span></div>
<div class="col-4"><span class="badge badge-info text-center" id="MaxIn">000</span></div>
<div class="col-3 text-right">
<label for="sel1"> Channel n°</label>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-4"><button type="button" class="btn btn-secondary btn-block" onclick="saveMin()">Save Min</button></div>
<div class="col-4"></div>
<div class="col-4"><button type="button" class="btn btn-info btn-block" onclick="saveMax()">Save Max</button></div>
</div>
</div>
<div class="col-2"></div>
</div>
<form method="POST" action="/api/v1/scaleout">
<div class="card-body row text-center">
<div class="col-2 text-center">OUT</div>
<div class="col-8">
<div class="row">
<div class="col-4">
<input type="number" class="form-control text-center" id="MinOut" name="MinOut"></input>
</div>
<div class="col-4"><span class="badge badge-warning" id="CurrOut">{{ Out0 }}</span></div>
<div class="col-4">
<input type="number" class="form-control text-center" id="MaxOut" name="MaxOut"></input>
</div>
<div class="col-4 text-right">
<div class="form-group">
<select class="form-control" id="ddlChannels" onchange="setChannel(this)">
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
</select>
</div>
</div>
<div class="col-2">
</div>
</div>
<div class="row text-center">
<div class="col-2"></div>
<div class="col-8">
</div>
<div class="card-body h5 text-center">
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-4">MIN</div>
<div class="col-4">Attuale</div>
<div class="col-4">MAX</div>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2">IN</div>
<div class="col-8">
<div class="row">
<div class="col-4"><span class="badge badge-secondary text-center" id="MinIn">000</span></div>
<div class="col-4"><span class="badge badge-warning text-center" id="CurrIn">000</span></div>
<div class="col-4"><span class="badge badge-info text-center" id="MaxIn">000</span></div>
</div>
</div>
<div class="col-2"></div>
</div>
<div class="card-body row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<div class="col-4"><button type="button" class="btn btn-secondary btn-block" onclick="saveMin()">Save Min</button></div>
<div class="col-4"></div>
<div class="col-4"><button type="button" class="btn btn-info btn-block" onclick="saveMax()">Save Max</button></div>
</div>
</div>
<div class="col-2"></div>
</div>
<form method="POST" action="/api/v1/scaleout">
<div class="card-body row text-center">
<div class="col-2 text-center">OUT</div>
<div class="col-8">
<div class="row">
<div class="col-4">
<input type="number" class="form-control text-center" id="MinOut" name="MinOut"></input>
</div>
<div class="col-4"><span class="badge badge-warning" id="CurrOut">{{ Out0 }}</span></div>
<div class="col-4">
<input type="number" class="form-control text-center" id="MaxOut" name="MaxOut"></input>
</div>
</div>
</div>
<div class="col-2">
</div>
</div>
<div class="row text-center">
<div class="col-2"></div>
<div class="col-8">
<div class="row">
<input type="submit" value="SET OUTPUT SCALE" class="btn btn-success btn-block mt-2"></input>
</div>
</div>
<div class="col-2"></div>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="card-header">
<strong>Selezione cartella</strong>
<div class="input-group-text my-2">
<span>Cartella attuale: &nbsp;</span> <span id="CurrentFolder"></span>
</div>
</div>
<div class="card-body">
<form class="col-12" method="POST" action="/api/v1/setup/workingtree">
<div class="row input-group my-2">
<span class="col-3 input-group-text">Insert new: &nbsp;</span>
<input type="text" class="col-7 form-control" id="NewFolder" name="NewFolder"></input>
<input type="submit" value="SET" class="btn btn-success btn-block col-2"></input>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Impostazioni Timer</strong>
</div>
<div class="card-body row">
<form class="col-12" method="POST" action="/api/v1/frequency">
<div class="input-group my-2">
<span class="col-8 input-group-text">Periodo di campionamento (ms): &nbsp;</span>
<input type="number" class="col-4 form-control" id="LogFreq" name="LogFreq"></input>
</div>
<div class="input-group my-2">
<span class="col-8 input-group-text">Periodo di scrittura (ms): &nbsp;</span>
<input type="number" class="col-4 form-control" id="WriteFreq" name="WriteFreq"></input>
<br>
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
</form>
</div>
</div>
<div class="card my-2 col-12">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Reset impostazioni predefinite</strong>
</div>
<div class="card-body mb-4">
<form method="POST" action="/api/v1/setup/resetSettings">
<div class="row">
<input type="submit" value="SET OUTPUT SCALE" class="btn btn-success btn-block mt-2"></input>
<div class="col-2"></div>
<input type="submit" class="col-8 btn btn-danger btn-block my-2" value="RESET SETTINGS"></input>
<div class="col-2"></div>
</div>
</div>
<div class="col-2"></div>
</form>
</div>
</form>
</div>
</h5>
</div>
<div class="card my-2">
<div class="card-header">
<strong>Selezione cartella</strong>
<div class="input-group-text my-2">
<span>Cartella attuale: &nbsp;</span> <span id="CurrentFolder"></span>
</div>
</div>
<div class="card-body">
<form class="col-12" method="POST" action="/api/v1/setup/workingtree">
<div class="row input-group my-2">
<span class="col-3 input-group-text">Insert new: &nbsp;</span>
<input type="text" class="col-7 form-control" id="NewFolder" name="NewFolder"></input>
<input type="submit" value="SET" class="btn btn-success btn-block col-2"></input>
</div>
</form>
</div>
</div>
<div class="card">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Impostazioni Timer</strong>
</div>
<div class="card-body row">
<form class="col-12" method="POST" action="/api/v1/frequency">
<div class="input-group my-2">
<span class="col-8 input-group-text">Periodo di campionamento (ms): &nbsp;</span>
<input type="number" class="col-4 form-control" id="LogFreq" name="LogFreq"></input>
</div>
<div class="input-group my-2">
<span class="col-8 input-group-text">Periodo di scrittura (ms): &nbsp;</span>
<input type="number" class="col-4 form-control" id="WriteFreq" name="WriteFreq"></input>
<br>
<input type="submit" value="SET" class="btn btn-success btn-block mt-2"></input>
</div>
</form>
</div>
</div>
<div class="card my-2">
<div class="card-header">
<i class="fas fa-table mr-1"></i>
<strong>Reset impostazioni predefinite</strong>
</div>
<div class="card-body mb-4">
<form method="POST" action="/api/v1/setup/resetSettings">
<div class="row">
<div class="col-2"></div>
<input type="submit" class="col-8 btn btn-danger btn-block my-2" value="RESET SETTINGS"></input>
<div class="col-2"></div>
</div>
</form>
</div>
</div>
</div>