forked from ZwiiCMS-Team/ZwiiCMS
verrouillage des fchiers ouverts
This commit is contained in:
parent
51607bfbb7
commit
94e65e92aa
@ -1,5 +1,8 @@
|
||||
# Changelog
|
||||
|
||||
## Version 10.3.13
|
||||
Modification :
|
||||
- Verouillage des fichiers de données ouverts en écriture.
|
||||
|
||||
## Version 10.3.12
|
||||
Correction :
|
||||
|
@ -1,6 +1,6 @@
|
||||
![](https://img.shields.io/github/last-commit/fredtempez/ZwiiCMS/master) ![](https://img.shields.io/github/release-date/fredtempez/ZwiiCMS)
|
||||
|
||||
# ZwiiCMS 10.3.12
|
||||
# ZwiiCMS 10.3.13
|
||||
|
||||
Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation.
|
||||
|
||||
|
@ -108,8 +108,7 @@ class JsonDb extends \Prowebcraft\Dot
|
||||
} else {
|
||||
$this->data = json_decode(file_get_contents($this->db), true);
|
||||
if (!$this->data === null) {
|
||||
throw new \InvalidArgumentException('Database file ' . $this->db
|
||||
. ' contains invalid json object. Please validate or remove file');
|
||||
throw new \InvalidArgumentException('Erreur de lecture du fichier de données ' . $this->db);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -120,6 +119,16 @@ class JsonDb extends \Prowebcraft\Dot
|
||||
* Saving to local database
|
||||
*/
|
||||
public function save() {
|
||||
file_put_contents($this->db, json_encode($this->data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT));
|
||||
// 3 essais
|
||||
for($i = 0; $i < 4; $i++) {
|
||||
if(file_put_contents($this->db, json_encode($this->data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|LOCK_EX)) !== false) {
|
||||
break;
|
||||
}
|
||||
// Pause de 10 millisecondes
|
||||
usleep(10000);
|
||||
if ($i === 4) {
|
||||
throw new \InvalidArgumentException('Erreur d\'écriture du fichier de données ' . $this->db);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ class common {
|
||||
const ACCESS_TIMER = 1800;
|
||||
|
||||
// Numéro de version
|
||||
const ZWII_VERSION = '10.3.12';
|
||||
const ZWII_VERSION = '10.3.13';
|
||||
const ZWII_UPDATE_CHANNEL = "v10";
|
||||
|
||||
public static $actions = [];
|
||||
@ -617,7 +617,8 @@ class common {
|
||||
$this->setData(['theme',$tempData['theme']]);
|
||||
|
||||
// Import des users sauvegardés si option active
|
||||
if ($keepUsers === false) {
|
||||
if ($keepUsers === false
|
||||
AND $tempData['user'] !== NULL) {
|
||||
$this->setData(['user',$tempData['user']]);
|
||||
}
|
||||
|
||||
@ -1878,7 +1879,8 @@ class core extends common {
|
||||
}
|
||||
}
|
||||
// Accès concurrent stocke la page visitée
|
||||
if ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')) {
|
||||
if ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
|
||||
AND $this->getUser('id') ) {
|
||||
$this->setData(['user',$this->getUser('id'),'accessUrl',$this->getUrl()]);
|
||||
$this->setData(['user',$this->getUser('id'),'accessTimer',time()]);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user