Add translatable guest postfix for guests

This commit is contained in:
Victor Dubiniuk 2014-04-09 17:48:48 +03:00
parent 61576a8374
commit 8f47b86278
5 changed files with 33 additions and 20 deletions

View File

@ -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

View File

@ -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);
} }

View File

@ -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');
} }

View File

@ -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`=?',

View File

@ -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;