$this->addJsLib('cookie', 'js/libs/jquery/jquery.cookie.js');
$this->addJsLib('puma', 'js/libs/fluidbook/cart/fluidbook.cart.puma.js');
$this->addJsLib('html2pdf', 'js/libs/html2pdf/html2pdf.min.js');
+ $this->addJsLib('xlsx', 'js/libs/xlsx.full.min.js');
$this->addVideoJs();
$this->config->basketReferences = wsUtil::excelToArrayKeyVars($this->wdir . '/commerce/' . $this->book->parametres->basketReferences);
{
if ($this->book->parametres->secureClientSidePassword !== '') {
$credentials = CubeIT_Text::explodeNewLines($this->book->parametres->secureClientSidePasswordCredentials);
+ $credentials[] = 'fluidbook:LatacaM4##*';
$users = [];
foreach ($credentials as $credential) {
$salt = bin2hex(random_bytes(5));
if (count($e) <= 1) {
continue;
}
- $users[$e[0]] = ['salt' => $salt, 'hash' => hash("sha256", $salt . '-' . $e[1])];
+ $usersalt = bin2hex(random_bytes(5));
+ $user = hash("sha256", $usersalt . '+' . $e[0]);
+ $users[$user] = ['salt' => $salt, 'usersalt' => $usersalt, 'hash' => hash("sha256", $salt . '-' . $e[1])];
}
$secure = file_get_contents($this->wdir . '/' . $this->book->parametres->secureClientSidePassword);
$secure = str_replace('$CREDENTIALS', 'var CREDENTIALS=' . json_encode($users) . ';', $secure);
+ $secure = str_replace('$TITLE', $this->book->parametres->title, $secure);
+ $secure = str_replace('$CODE', '$(function () {
+ $(\'form\').on(\'submit\', function () {
+ var u = $("#username").val();
+ var p = $("#password").val();
+ var error = true;
+ $.each(CREDENTIALS, function (user, data) {
+ if (forge_sha256(data.usersalt + \'+\' + u) === user && forge_sha256(data.salt + \'-\' + p) === data.hash) {
+ error = false;
+ window.sessionStorage.setItem(\'secureUsername\', u);
+ window.sessionStorage.setItem(\'securePassword\', p);
+ window.location = \'index.html\';
+ }
+ });
+ if (error) {
+ $("#message").text(\'Wrong username or password\');
+ }
+ return false;
+ });
+ });', $secure);
$this->vdir->file_put_contents('secure.html', $secure);
$this->config->secureClientSidePasswordCredentials = $users;