From 8f47b862782b13068b7067561183573378285b57 Mon Sep 17 00:00:00 2001 From: Victor Dubiniuk Date: Wed, 9 Apr 2014 17:48:48 +0300 Subject: [PATCH] Add translatable guest postfix for guests --- ajax/sessionController.php | 15 ++++++--------- ajax/userController.php | 11 +++++++---- lib/config.php | 4 ++++ lib/db/member.php | 11 ++++++++--- lib/db/session.php | 12 ++++++++---- 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/ajax/sessionController.php b/ajax/sessionController.php index 285ac262..9acd3e6e 100644 --- a/ajax/sessionController.php +++ b/ajax/sessionController.php @@ -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 diff --git a/ajax/userController.php b/ajax/userController.php index 94111c9b..b1878358 100644 --- a/ajax/userController.php +++ b/ajax/userController.php @@ -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); } diff --git a/lib/config.php b/lib/config.php index d8b7be4b..52ee7825 100644 --- a/lib/config.php +++ b/lib/config.php @@ -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'); } diff --git a/lib/db/member.php b/lib/db/member.php index 1fe827f1..7e544590 100644 --- a/lib/db/member.php +++ b/lib/db/member.php @@ -15,7 +15,7 @@ namespace OCA\Documents; class Db_Member extends Db{ const DB_TABLE = '`*PREFIX*documents_member`'; - + const ACTIVITY_THRESHOLD = 90; // 1.5 Minutes const MEMBER_STATUS_ACTIVE = 1; @@ -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`=?', diff --git a/lib/db/session.php b/lib/db/session.php index 40c99f43..3fa77bf3 100644 --- a/lib/db/session.php +++ b/lib/db/session.php @@ -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()){ @@ -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(); $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;