]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - application/Updater.php
Merge pull request #682 from ArthurHoaro/delete-button
[github/shaarli/Shaarli.git] / application / Updater.php
index 94b639903c7fdead5816c52fc8a358f534700d80..38de33503a417ac06c9b186298c7621a471d3667 100644 (file)
@@ -218,11 +218,14 @@ class Updater
 
     /**
      * Update the database to use the new ID system, which replaces linkdate primary keys.
-     * Also, creation and update dates are now DateTime objects.
+     * Also, creation and update dates are now DateTime objects (done by LinkDB).
      *
      * Since this update is very sensitve (changing the whole database), the datastore will be
      * automatically backed up into the file datastore.<datetime>.php.
      *
+     * LinkDB also adds the field 'shorturl' with the precedent format (linkdate smallhash),
+     * which will be saved by this method.
+     *
      * @return bool true if the update is successful, false otherwise.
      */
     public function updateMethodDatastoreIds()
@@ -243,10 +246,6 @@ class Updater
         $links = array_reverse($links);
         $cpt = 0;
         foreach ($links as $l) {
-            $l['created'] = DateTime::createFromFormat('Ymd_His', $l['linkdate']);
-            if (! empty($l['updated'])) {
-                $l['updated'] = DateTime::createFromFormat('Ymd_His', $l['updated']);
-            }
             unset($l['linkdate']);
             $l['id'] = $cpt;
             $this->linkDB[$cpt++] = $l;
@@ -257,6 +256,29 @@ class Updater
 
         return true;
     }
+
+    /**
+     * Initialize API settings:
+     *   - api.enabled: true
+     *   - api.secret: generated secret
+     */
+    public function updateMethodApiSettings()
+    {
+        if ($this->conf->exists('api.secret')) {
+            return true;
+        }
+
+        $this->conf->set('api.enabled', true);
+        $this->conf->set(
+            'api.secret',
+            generate_api_secret(
+                $this->conf->get('credentials.login'),
+                $this->conf->get('credentials.salt')
+            )
+        );
+        $this->conf->write($this->isLoggedIn);
+        return true;
+    }
 }
 
 /**