Add translatable guest postfix for guests
This commit is contained in:
parent
61576a8374
commit
8f47b86278
@ -15,15 +15,16 @@ namespace OCA\Documents;
|
|||||||
class SessionController extends Controller{
|
class SessionController extends Controller{
|
||||||
|
|
||||||
public static function joinAsGuest($args){
|
public static function joinAsGuest($args){
|
||||||
$postfix = self::preDispatchGuest();
|
self::preDispatchGuest();
|
||||||
|
|
||||||
$uid = Helper::getArrayValueByKey($_POST, 'name');
|
$uid = Helper::getArrayValueByKey($_POST, 'name');
|
||||||
$guestUid = substr($uid, 0, 16) .' '. $postfix;
|
$guestUid = substr($uid, 0, 16);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$token = Helper::getArrayValueByKey($args, 'token');
|
$token = Helper::getArrayValueByKey($args, 'token');
|
||||||
$fileId = File::getIdByShareToken($token);
|
$fileId = File::getIdByShareToken($token);
|
||||||
self::join($guestUid, $fileId);
|
$session = Db_Session::start($uid, $fileId, true);
|
||||||
|
\OCP\JSON::success($session);
|
||||||
} catch (\Exception $e){
|
} catch (\Exception $e){
|
||||||
Helper::warnLog('Starting a session failed. Reason: ' . $e->getMessage());
|
Helper::warnLog('Starting a session failed. Reason: ' . $e->getMessage());
|
||||||
\OCP\JSON::error();
|
\OCP\JSON::error();
|
||||||
@ -40,7 +41,8 @@ class SessionController extends Controller{
|
|||||||
$path = $view->getPath($fileId);
|
$path = $view->getPath($fileId);
|
||||||
|
|
||||||
if ($view->isUpdatable($path)) {
|
if ($view->isUpdatable($path)) {
|
||||||
self::join($uid, $fileId);
|
$session = Db_Session::start($uid, $fileId, false);
|
||||||
|
\OCP\JSON::success($session);
|
||||||
} else {
|
} else {
|
||||||
$info = $view->getFileInfo();
|
$info = $view->getFileInfo();
|
||||||
\OCP\JSON::success(array(
|
\OCP\JSON::success(array(
|
||||||
@ -56,11 +58,6 @@ class SessionController extends Controller{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static function join($uid, $fileId){
|
|
||||||
$session = Db_Session::start($uid, $fileId);
|
|
||||||
\OCP\JSON::success($session);
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Store the document content to its origin
|
* Store the document content to its origin
|
||||||
|
@ -45,12 +45,15 @@ class UserController extends Controller{
|
|||||||
$member = new Db_Member();
|
$member = new Db_Member();
|
||||||
$member->load($memberId);
|
$member->load($memberId);
|
||||||
$memberData = $member->getData();
|
$memberData = $member->getData();
|
||||||
if (count($memberData) && $memberData['status']==Db_Member::MEMBER_STATUS_ACTIVE
|
if (count($memberData)
|
||||||
&& preg_match('/.* \(guest\)$/', $memberData['uid'])
|
&& $memberData['status']==Db_Member::MEMBER_STATUS_ACTIVE
|
||||||
|
&& $memberData['is_guest']
|
||||||
){
|
){
|
||||||
if (!preg_match('/.* \(guest\)$/', $name)){
|
$guestMark = Db_Member::getGuestPostfix();
|
||||||
$name .= ' (guest)';
|
if (substr($name, -strlen($guestMark)) !== $guestMark){
|
||||||
|
$name = $name . ' ' . $guestMark;
|
||||||
}
|
}
|
||||||
|
|
||||||
$op = new Db_Op();
|
$op = new Db_Op();
|
||||||
$op->changeNick($memberData['es_id'], $memberId, $name);
|
$op->changeNick($memberData['es_id'], $memberId, $name);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,10 @@ namespace OCA\Documents;
|
|||||||
class Config {
|
class Config {
|
||||||
const APP_NAME = 'documents';
|
const APP_NAME = 'documents';
|
||||||
|
|
||||||
|
public static function getL10n(){
|
||||||
|
return \OCP\Util::getL10N(self::APP_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
public static function getConverter(){
|
public static function getConverter(){
|
||||||
return self::getAppValue('converter', 'local');
|
return self::getAppValue('converter', 'local');
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ namespace OCA\Documents;
|
|||||||
class Db_Member extends Db{
|
class Db_Member extends Db{
|
||||||
|
|
||||||
const DB_TABLE = '`*PREFIX*documents_member`';
|
const DB_TABLE = '`*PREFIX*documents_member`';
|
||||||
|
|
||||||
const ACTIVITY_THRESHOLD = 90; // 1.5 Minutes
|
const ACTIVITY_THRESHOLD = 90; // 1.5 Minutes
|
||||||
|
|
||||||
const MEMBER_STATUS_ACTIVE = 1;
|
const MEMBER_STATUS_ACTIVE = 1;
|
||||||
@ -23,11 +23,16 @@ class Db_Member extends Db{
|
|||||||
|
|
||||||
protected $tableName = '`*PREFIX*documents_member`';
|
protected $tableName = '`*PREFIX*documents_member`';
|
||||||
|
|
||||||
protected $insertStatement = 'INSERT INTO `*PREFIX*documents_member` (`es_id`, `uid`, `color`, `last_activity`)
|
protected $insertStatement = 'INSERT INTO `*PREFIX*documents_member` (`es_id`, `uid`, `color`, `last_activity`, `is_guest`)
|
||||||
VALUES (?, ?, ?, ?)';
|
VALUES (?, ?, ?, ?, ?)';
|
||||||
|
|
||||||
protected $loadStatement = 'SELECT * FROM `*PREFIX*documents_member` WHERE `member_id`= ?';
|
protected $loadStatement = 'SELECT * FROM `*PREFIX*documents_member` WHERE `member_id`= ?';
|
||||||
|
|
||||||
|
public static function getGuestPostfix(){
|
||||||
|
return '(' . Config::getL10n()->t('guest') . ')';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function updateActivity($memberId){
|
public function updateActivity($memberId){
|
||||||
return $this->execute(
|
return $this->execute(
|
||||||
'UPDATE ' . $this->tableName . ' SET `last_activity`=?, `status`=? WHERE `member_id`=?',
|
'UPDATE ' . $this->tableName . ' SET `last_activity`=?, `status`=? WHERE `member_id`=?',
|
||||||
|
@ -35,7 +35,7 @@ class Db_Session extends \OCA\Documents\Db {
|
|||||||
* @return array
|
* @return array
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public static function start($uid, $fileId){
|
public static function start($uid, $fileId, $isGuest){
|
||||||
$file = new File($fileId);
|
$file = new File($fileId);
|
||||||
list($ownerView, $path) = $file->getOwnerViewAndPath();
|
list($ownerView, $path) = $file->getOwnerViewAndPath();
|
||||||
|
|
||||||
@ -72,7 +72,8 @@ class Db_Session extends \OCA\Documents\Db {
|
|||||||
$session['es_id'],
|
$session['es_id'],
|
||||||
$uid,
|
$uid,
|
||||||
$memberColor,
|
$memberColor,
|
||||||
time()
|
time(),
|
||||||
|
intval($isGuest)
|
||||||
));
|
));
|
||||||
|
|
||||||
if ($member->insert()){
|
if ($member->insert()){
|
||||||
@ -101,14 +102,15 @@ class Db_Session extends \OCA\Documents\Db {
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$displayName = $isGuest ? $uid . ' ' . Db_Member::getGuestPostfix() : \OCP\User::getDisplayName($uid);
|
||||||
|
|
||||||
$session['member_id'] = (string) $member->getLastInsertId();
|
$session['member_id'] = (string) $member->getLastInsertId();
|
||||||
$op = new Db_Op();
|
$op = new Db_Op();
|
||||||
$op->addMember(
|
$op->addMember(
|
||||||
$session['es_id'],
|
$session['es_id'],
|
||||||
$session['member_id'],
|
$session['member_id'],
|
||||||
\OCP\User::getDisplayName($uid),
|
$displayName,
|
||||||
$memberColor,
|
$memberColor,
|
||||||
$imageUrl
|
$imageUrl
|
||||||
);
|
);
|
||||||
@ -116,6 +118,8 @@ class Db_Session extends \OCA\Documents\Db {
|
|||||||
throw new \Exception('Failed to add member into database');
|
throw new \Exception('Failed to add member into database');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$session['permissions'] = $ownerView->getFilePermissions($path);
|
$session['permissions'] = $ownerView->getFilePermissions($path);
|
||||||
|
|
||||||
return $session;
|
return $session;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user