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