summaryrefslogtreecommitdiffstats
path: root/lib/private/Authentication
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@owncloud.com>2016-04-26 12:48:19 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2016-05-11 13:36:46 +0200
commit8d4850218740b74faae5af637d1b1c2b3dee3c41 (patch)
treea54f2a3efc72f58fea3909a017211ac26027fbf2 /lib/private/Authentication
parent53636c73d649514fbbfeba4741f39be1725e47fd (diff)
downloadnextcloud-server-8d4850218740b74faae5af637d1b1c2b3dee3c41.tar.gz
nextcloud-server-8d4850218740b74faae5af637d1b1c2b3dee3c41.zip
Add index on 'last_activity'
add token type column and delete only temporary tokens in the background job debounce token updates; fix wrong class import
Diffstat (limited to 'lib/private/Authentication')
-rw-r--r--lib/private/Authentication/Token/DefaultToken.php5
-rw-r--r--lib/private/Authentication/Token/DefaultTokenMapper.php6
-rw-r--r--lib/private/Authentication/Token/DefaultTokenProvider.php4
-rw-r--r--lib/private/Authentication/Token/IToken.php3
4 files changed, 15 insertions, 3 deletions
diff --git a/lib/private/Authentication/Token/DefaultToken.php b/lib/private/Authentication/Token/DefaultToken.php
index 6b859d7d063..78b5c2d6116 100644
--- a/lib/private/Authentication/Token/DefaultToken.php
+++ b/lib/private/Authentication/Token/DefaultToken.php
@@ -49,6 +49,11 @@ class DefaultToken extends Entity implements IToken {
/**
* @var int
*/
+ protected $type;
+
+ /**
+ * @var int
+ */
protected $lastActivity;
public function getId() {
diff --git a/lib/private/Authentication/Token/DefaultTokenMapper.php b/lib/private/Authentication/Token/DefaultTokenMapper.php
index d54d2489399..f4d979183e6 100644
--- a/lib/private/Authentication/Token/DefaultTokenMapper.php
+++ b/lib/private/Authentication/Token/DefaultTokenMapper.php
@@ -50,9 +50,11 @@ class DefaultTokenMapper extends Mapper {
*/
public function invalidateOld($olderThan) {
$sql = 'DELETE FROM `' . $this->getTableName() . '` '
- . 'WHERE `last_activity` < ?';
+ . 'WHERE `last_activity` < ? '
+ . 'AND `type` = ?';
$this->execute($sql, [
- $olderThan
+ $olderThan,
+ IToken::TEMPORARY_TOKEN,
]);
}
diff --git a/lib/private/Authentication/Token/DefaultTokenProvider.php b/lib/private/Authentication/Token/DefaultTokenProvider.php
index b3564e0e81b..a4e44f3c5d2 100644
--- a/lib/private/Authentication/Token/DefaultTokenProvider.php
+++ b/lib/private/Authentication/Token/DefaultTokenProvider.php
@@ -61,14 +61,16 @@ class DefaultTokenProvider implements IProvider {
* @param string $token
* @param string $uid
* @param string $password
+ * @apram int $type token type
* @return DefaultToken
*/
- public function generateToken($token, $uid, $password, $name) {
+ public function generateToken($token, $uid, $password, $name, $type = IToken::TEMPORARY_TOKEN) {
$dbToken = new DefaultToken();
$dbToken->setUid($uid);
$dbToken->setPassword($this->encryptPassword($password, $token));
$dbToken->setName($name);
$dbToken->setToken($this->hashToken($token));
+ $dbToken->setType($type);
$dbToken->setLastActivity(time());
$this->mapper->insert($dbToken);
diff --git a/lib/private/Authentication/Token/IToken.php b/lib/private/Authentication/Token/IToken.php
index 10b54c0d2a8..549a1f98268 100644
--- a/lib/private/Authentication/Token/IToken.php
+++ b/lib/private/Authentication/Token/IToken.php
@@ -27,6 +27,9 @@ namespace OC\Authentication\Token;
*/
interface IToken {
+ const TEMPORARY_TOKEN = 0;
+ const PERMANENT_TOKEN = 1;
+
/**
* Get the token ID
*