verrouillage des fchiers ouverts
This commit is contained in:
parent
51607bfbb7
commit
94e65e92aa
@ -1,5 +1,8 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## Version 10.3.13
|
||||||
|
Modification :
|
||||||
|
- Verouillage des fichiers de données ouverts en écriture.
|
||||||
|
|
||||||
## Version 10.3.12
|
## Version 10.3.12
|
||||||
Correction :
|
Correction :
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
![](https://img.shields.io/github/last-commit/fredtempez/ZwiiCMS/master) ![](https://img.shields.io/github/release-date/fredtempez/ZwiiCMS)
|
![](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.
|
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 {
|
} else {
|
||||||
$this->data = json_decode(file_get_contents($this->db), true);
|
$this->data = json_decode(file_get_contents($this->db), true);
|
||||||
if (!$this->data === null) {
|
if (!$this->data === null) {
|
||||||
throw new \InvalidArgumentException('Database file ' . $this->db
|
throw new \InvalidArgumentException('Erreur de lecture du fichier de données ' . $this->db);
|
||||||
. ' contains invalid json object. Please validate or remove file');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -120,6 +119,16 @@ class JsonDb extends \Prowebcraft\Dot
|
|||||||
* Saving to local database
|
* Saving to local database
|
||||||
*/
|
*/
|
||||||
public function save() {
|
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;
|
const ACCESS_TIMER = 1800;
|
||||||
|
|
||||||
// Numéro de version
|
// Numéro de version
|
||||||
const ZWII_VERSION = '10.3.12';
|
const ZWII_VERSION = '10.3.13';
|
||||||
const ZWII_UPDATE_CHANNEL = "v10";
|
const ZWII_UPDATE_CHANNEL = "v10";
|
||||||
|
|
||||||
public static $actions = [];
|
public static $actions = [];
|
||||||
@ -617,7 +617,8 @@ class common {
|
|||||||
$this->setData(['theme',$tempData['theme']]);
|
$this->setData(['theme',$tempData['theme']]);
|
||||||
|
|
||||||
// Import des users sauvegardés si option active
|
// Import des users sauvegardés si option active
|
||||||
if ($keepUsers === false) {
|
if ($keepUsers === false
|
||||||
|
AND $tempData['user'] !== NULL) {
|
||||||
$this->setData(['user',$tempData['user']]);
|
$this->setData(['user',$tempData['user']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1878,7 +1879,8 @@ class core extends common {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Accès concurrent stocke la page visitée
|
// 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'),'accessUrl',$this->getUrl()]);
|
||||||
$this->setData(['user',$this->getUser('id'),'accessTimer',time()]);
|
$this->setData(['user',$this->getUser('id'),'accessTimer',time()]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user