Skip to content
Snippets Groups Projects
Commit 173d0324 authored by Thomas Hackl's avatar Thomas Hackl
Browse files

using access token, thus skipping login in requireSystemAccount()

parent d1c28135
No related merge requests found
<?php
/**
* Class RenameMatrixLoginTokenEntry
* Service account has an access token instead of a login token.
* Reflect this in the config entry name.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* @author Thomas Hackl <hackl@data-quest.de>
* @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
* @category Matrix
*/
class RenameMatrixLoginTokenEntry extends Migration
{
public function description()
{
return 'Service account has an access token instead of a login token. Reflect this in the config entry name.';
}
public function up()
{
DBManager::get()->execute(
"UPDATE `config` SET `field` = :newname, `description`= :newdesc WHERE `field` = :oldname",
[
'oldname' => 'MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN',
'newname' => 'MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN',
'newdesc' => 'WebSSO-Token zur Authentifizierung des Serviceaccounts. Ist dieser Wert gesetzt, ' .
'wird ein eventuell ebenfalls eingetragenes Passwort nicht verwendet.'
]
);
DBManager::get()->execute(
"UPDATE `config_values` SET `field` = :newname WHERE `field` = :oldname",
[
'oldname' => 'MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN',
'newname' => 'MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN'
]
);
}
public function down()
{
$update = [
'oldname' => 'MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN',
'newname' => 'MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN',
'newdesc' => 'WebSSO-Token zum Login des Serviceaccounts. Ist dieser Wert gesetzt, ' .
'wird er statt eines möglicherweise ebenfalls angegebenen Passworts verwendet.'
];
DBManager::get()->execute(
"UPDATE `config` SET `field` = :newname, `description`= :newdesc WHERE `field` = :oldname",
[
'oldname' => 'MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN',
'newname' => 'MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN',
'newdesc' => 'WebSSO-Token zum Login des Serviceaccounts. Ist dieser Wert gesetzt, ' .
'wird er statt eines möglicherweise ebenfalls angegebenen Passworts verwendet.'
]
);
DBManager::get()->execute(
"UPDATE `config_values` SET `field` = :newname WHERE `field` = :oldname",
[
'oldname' => 'MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN',
'newname' => 'MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN'
]
);
}
}
\ No newline at end of file
......@@ -58,20 +58,18 @@ class MatrixAccount extends SimpleORMap
{
if (trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_USERNAME) != '' &&
(trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_PASSWORD) != '' ||
trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN) != '')) {
trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN) != '')) {
// Login token specified, use this.
if (trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN) != '') {
$account = new Patrix\Account(trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_USERNAME), '',
trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_LOGIN_TOKEN));
$viaToken = true;
// Access token specified, use this (and skip login because the token can be used directly).
if (trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN) != '') {
$account = new Patrix\Account(trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_USERNAME), '');
$account->setAccessData(trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_ACCESS_TOKEN), 'Stud.IP');
// No token, login by username and password.
} else {
$account = new Patrix\Account(trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_USERNAME),
trim(Config::get()->MATRIX_SYSTEM_ACCOUNT_PASSWORD));
$viaToken = false;
MatrixClient::get()->login($account);
}
MatrixClient::get()->login($account, $viaToken);
return $account;
} else {
......
pluginname=Matrix-Chat
pluginclassname=MatrixPlugin
origin=data-quest
version=1.1.2
version=1.2
screenshot=assets/images/matrix_logo.png
description=Matrix chat for Stud.IP courses
studipMinVersion=4.5
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment