Browse Source

- Add more suggestions restrictions (communities and rooms) when restrictsuggestions is on

- Fixing a few bugs related to the ItemsCapabilities merge and Identities new table
- Cleanup some code
- Prevent Pubsub servers exploration when restrictsuggestions is on
pull/874/head
Timothée Jaussoin 6 years ago
parent
commit
317dbf847a
  1. 2
      app/Identity.php
  2. 51
      app/Info.php
  3. 1
      app/controllers/AccountController.php
  4. 1
      app/helpers/StringHelper.php
  5. 14
      app/helpers/UtilsHelper.php
  6. 1
      app/widgets/Chat/Chat.php
  7. 2
      app/widgets/Chats/_chats_item.tpl
  8. 1
      app/widgets/Communities/Communities.php
  9. 3
      app/widgets/CommunitiesServers/CommunitiesServers.php
  10. 74
      app/widgets/CommunitiesServers/_communitiesservers.tpl
  11. 3
      app/widgets/CommunitiesServers/locales.ini
  12. 4
      app/widgets/CommunityAffiliations/CommunityAffiliations.php
  13. 10
      app/widgets/ContactActions/_contactactions_drawer.tpl
  14. 4
      lib/moxl/src/Moxl/Utils.php
  15. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/Create.php
  16. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/Delete.php
  17. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/GetAffiliations.php
  18. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/GetConfig.php
  19. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/GetItem.php
  20. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/GetItems.php
  21. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/GetItemsId.php
  22. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/GetSubscriptions.php
  23. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/PostDelete.php
  24. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/PostPublish.php
  25. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/SetAffiliations.php
  26. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/SetConfig.php
  27. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/SetSubscriptions.php
  28. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/Subscribe.php
  29. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/TestCreate.php
  30. 3
      lib/moxl/src/Moxl/Xec/Action/Pubsub/TestPostPublish.php
  31. 1
      lib/moxl/src/Moxl/Xec/Action/Pubsub/Unsubscribe.php
  32. 1
      lib/moxl/src/Moxl/Xec/Action/PubsubSubscription/Add.php
  33. 1
      lib/moxl/src/Moxl/Xec/Action/PubsubSubscription/Get.php
  34. 1
      lib/moxl/src/Moxl/Xec/Action/PubsubSubscription/Remove.php
  35. 1
      src/Movim/ChatOwnState.php
  36. 1
      src/Movim/Controller/Base.php
  37. 3
      src/Movim/Daemon/Api.php
  38. 2
      src/Movim/Daemon/Session.php
  39. 1
      src/Movim/Widget/Base.php

2
app/Identity.php

@ -13,4 +13,4 @@ class Identity extends Model
{
return $this->belongsTo('App\Info');
}
}
}

51
app/Info.php

@ -19,6 +19,7 @@ class Info extends Model
public function save(array $options = [])
{
try {
unset($this->identities);
parent::save($options);
if ($this->freshIdentities) {
@ -46,6 +47,20 @@ class Info extends Model
});
}
public function scopeRestrictUserHost($query)
{
$configuration = Configuration::get();
if ($configuration->restrictsuggestions) {
$query->whereIn('server', function ($query) {
$host = \App\User::me()->session->host;
$query->select('server')
->from('infos')
->where('server', 'like', '%.' . $host);
});
}
}
public function setAdminaddressesAttribute(array $arr)
{
$this->attributes['adminaddresses'] = serialize($arr);
@ -285,45 +300,45 @@ class Info extends Model
case 'muc#roominfo_occupants':
$this->occupants = (int)$field->value;
break;
case 'abuseaddresses':
case 'abuse-addresses':
$arr = [];
foreach ($field>children() as $value) {
$arr[] = (string)$value;
foreach ($field->children() as $value) {
$arr[] = (string)$value;
}
$this->abuseaddresses = $arr;
break;
case 'adminaddresses':
case 'admin-addresses':
$arr = [];
foreach ($field>children() as $value) {
$arr[] = (string)$value;
foreach ($field->children() as $value) {
$arr[] = (string)$value;
}
$this->adminaddresses = $arr;
break;
case 'feedbackaddresses':
case 'feedback-addresses':
$arr = [];
foreach ($field>children() as $value) {
$arr[] = (string)$value;
foreach ($field->children() as $value) {
$arr[] = (string)$value;
}
$this->feedbackaddresses = $arr;
break;
case 'salesaddresses':
case 'sales-addresses':
$arr = [];
foreach ($field>children() as $value) {
$arr[] = (string)$value;
foreach ($field->children() as $value) {
$arr[] = (string)$value;
}
$this->salesaddresses = $arr;
break;
case 'securityaddresses':
case 'security-addresses':
$arr = [];
foreach ($field>children() as $value) {
$arr[] = (string)$value;
foreach ($field->children() as $value) {
$arr[] = (string)$value;
}
$this->securityaddresses = $arr;
break;
case 'supportaddresses':
case 'support-addresses':
$arr = [];
foreach ($field>children() as $value) {
$arr[] = (string)$value;
foreach ($field->children() as $value) {
$arr[] = (string)$value;
}
$this->supportaddresses = $arr;
break;

1
app/controllers/AccountController.php

@ -1,4 +1,5 @@
<?php
use Movim\Controller\Base;
class AccountController extends Base

1
app/helpers/StringHelper.php

@ -1,7 +1,6 @@
<?php
use Movim\Route;
use App\Configuration;
function addUrls($string, bool $preview = false)
{

14
app/helpers/UtilsHelper.php

@ -3,7 +3,6 @@
use Monolog\Logger;
use Monolog\Handler\SyslogHandler;
use Monolog\Handler\StreamHandler;
use GuzzleHttp\Client;
use Movim\Picture;
class Utils
@ -630,16 +629,3 @@ function __()
$string = array_shift($args);
return $l->translate($string, $args);
}
/*
* Quick debug and die
*/
function dd($string)
{
if (php_sapi_name() != 'cli') {
\Utils::debug(is_string($string) ? $string : serialize($string));
} else {
\var_dump(is_string($string) ? $string : serialize($string));
}
exit;
}

1
app/widgets/Chat/Chat.php

@ -1018,6 +1018,7 @@ class Chat extends \Movim\Widget\Base
$conferences = \App\Info::whereCategory('conference')
->whereNotIn('server', $this->user->session->conferences()->pluck('conference')->toArray())
->restrictUserHost()
->where('mucpublic', true)
->where('mucpersistent', true);

2
app/widgets/Chats/_chats_item.tpl

@ -5,7 +5,7 @@
{if="$roster && $roster->presence"}
{if="$roster->presence->value > 4"}faded{/if}
{if="$roster->presence->last > 60"} inactive{/if}
{if="$roster->presence->capability && in_array($roster->presence->capability->type, array('handheld', 'phone', 'web'))"}
{if="$roster->presence->capability && $roster->presence->capability->identities()->first() && in_array($roster->presence->capability->identities()->first()->type, ['handheld', 'phone', 'web'])"}
action
{/if}
{/if}

1
app/widgets/Communities/Communities.php

@ -23,6 +23,7 @@ class Communities extends Base
$posts = \App\Post::withoutComments()
->restrictToCommunities()
->restrictNSFW()
->restrictUserHost()
->recents()
->orderBy('posts.published', 'desc')
->where('open', true);

3
app/widgets/CommunitiesServers/CommunitiesServers.php

@ -75,11 +75,14 @@ class CommunitiesServers extends Base
{
$servers = \App\Info::whereCategory('pubsub')
->whereType('service')
->restrictUserHost()
->orderBy('occupants', 'desc')
->get();
$configuration = \App\Configuration::get();
$view = $this->tpl();
$view->assign('servers', $servers);
$view->assign('restrict', $configuration->restrictsuggestions);
return $view->draw('_communitiesservers');
}

74
app/widgets/CommunitiesServers/_communitiesservers.tpl

@ -1,30 +1,44 @@
<ul class="list flex third middle active">
{loop="$servers"}
{if="!filter_var($value->server, FILTER_VALIDATE_EMAIL)"}
<li class="block
{if="$value->occupants == 0"}faded{/if}"
onclick="MovimUtils.redirect('{$c->route('community', $value->server)}')">
<span class="primary icon bubble color {$value->server|stringToColor}">
{$value->server|firstLetterCapitalize}
</span>
<p class="line" title="{$value->server} - {$value->name}">
{$value->server}
<span class="second">{$value->name}</span>
</p>
<p>{$c->__('communities.counter', $value->occupants)}</p>
</li>
{/if}
{/loop}
<li class="block large">
<span class="primary icon">
<i class="material-icons">search</i>
</span>
<form>
<div>
<input placeholder="pubsub.server.com" onkeypress="
if (event.keyCode == 13) { CommunitiesServers_ajaxDisco(this.value); return false; }" >
<label>{$c->__('communities.search_server')}</label>
</div>
</form>
</li>
</ul>
{if="$servers->isEmpty()"}
<ul class="thick">
<div class="placeholder">
<i class="material-icons">storage</i>
<h1>{$c->__('communitiesservers.empty_title')}</h1>
<h4>{$c->__('communitiesservers.empty_text')}</h4>
</li>
</ul>
{else}
<ul class="list flex third middle active">
{loop="$servers"}
{if="!filter_var($value->server, FILTER_VALIDATE_EMAIL)"}
<li class="block
{if="$value->occupants == 0"}faded{/if}"
onclick="MovimUtils.redirect('{$c->route('community', $value->server)}')">
<span class="primary icon bubble color {$value->server|stringToColor}">
{$value->server|firstLetterCapitalize}
</span>
<p class="line" title="{$value->server} - {$value->name}">
{$value->server}
<span class="second">{$value->name}</span>
</p>
<p>{$c->__('communities.counter', $value->occupants)}</p>
</li>
{/if}
{/loop}
</ul>
{/if}
{if="!$restrict"}
<ul class="list middle">
<li class="block large">
<span class="primary icon">
<i class="material-icons">search</i>
</span>
<form>
<div>
<input placeholder="pubsub.server.com" onkeypress="
if (event.keyCode == 13) { CommunitiesServers_ajaxDisco(this.value); return false; }" >
<label>{$c->__('communities.search_server')}</label>
</div>
</form>
</li>
</ul>
{/if}

3
app/widgets/CommunitiesServers/locales.ini

@ -0,0 +1,3 @@
[communitiesservers]
empty_title = No Communities Servers yet…
empty_text = "It seems that we can't find any communities for the moment"

4
app/widgets/CommunityAffiliations/CommunityAffiliations.php

@ -118,8 +118,8 @@ class CommunityAffiliations extends Base
public function onDeleteError($packet)
{
$m = new Rooms;
$m->setBookmark();
$c = new CommunityHeader;
$c->ajaxUnsubscribe($packet->content['server'], $packet->content['node']);
$this->deleted($packet);
}

10
app/widgets/ContactActions/_contactactions_drawer.tpl

@ -59,11 +59,11 @@
<span class="info">{$value->resource}</span>
{$value->capability->name}
</p>
<p class="line">
{if="isset($clienttype[$value->capability->type])"}
{$clienttype[$value->capability->type]}
{/if}
</p>
{if="$value->capability->identities()->first() && isset($clienttype[$value->capability->identities()->first()->type])"}
<p class="line">
{$clienttype[$value->capability->identities()->first()->type]}
</p>
{/if}
</li>
{/if}
{/loop}

4
lib/moxl/src/Moxl/Utils.php

@ -2,10 +2,6 @@
namespace Moxl;
use Monolog\Logger;
use Monolog\Handler\SyslogHandler;
use Monolog\Handler\StreamHandler;
class Utils
{
public static function getSupportedServices()

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/Create.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Stanza\Pubsub;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/Delete.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Stanza\Pubsub;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/GetAffiliations.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/GetConfig.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/GetItem.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/GetItems.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/GetItemsId.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Disco;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Xec\Action\Pubsub\GetItem;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/GetSubscriptions.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/PostDelete.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/PostPublish.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Stanza\PubsubAtom;
use Moxl\Xec\Action\Pubsub\GetItem;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/SetAffiliations.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/SetConfig.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/SetSubscriptions.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/Subscribe.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Xec\Action\PubsubSubscription\Add as SubscriptionAdd;

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/TestCreate.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Stanza\Pubsub;

3
lib/moxl/src/Moxl/Xec/Action/Pubsub/TestPostPublish.php

@ -2,10 +2,7 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Stanza\PubsubAtom;
use Moxl\Xec\Action\Pubsub\PostDelete;
use Moxl\Xec\Action\Pubsub\Errors;
class TestPostPublish extends Errors

1
lib/moxl/src/Moxl/Xec/Action/Pubsub/Unsubscribe.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\Pubsub;
use Moxl\Xec\Action;
use Moxl\Stanza\Pubsub;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Xec\Action\PubsubSubscription\Remove as SubscriptionRemove;

1
lib/moxl/src/Moxl/Xec/Action/PubsubSubscription/Add.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\PubsubSubscription;
use Moxl\Xec\Action;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Stanza\PubsubSubscription;

1
lib/moxl/src/Moxl/Xec/Action/PubsubSubscription/Get.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\PubsubSubscription;
use Moxl\Xec\Action;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Stanza\Pubsub;

1
lib/moxl/src/Moxl/Xec/Action/PubsubSubscription/Remove.php

@ -2,7 +2,6 @@
namespace Moxl\Xec\Action\PubsubSubscription;
use Moxl\Xec\Action;
use Moxl\Xec\Action\Pubsub\Errors;
use Moxl\Stanza\PubsubSubscription;

1
src/Movim/ChatOwnState.php

@ -4,7 +4,6 @@ namespace Movim;
use Moxl\Xec\Action\Message\Composing;
use Moxl\Xec\Action\Message\Paused;
use Moxl\Xec\Action\Message\Inactive;
/**
* This class handle all the outgoing chatstates

1
src/Movim/Controller/Base.php

@ -4,7 +4,6 @@ namespace Movim\Controller;
use Movim\Template\Builder;
use Movim\Route;
use Movim\User;
class Base
{

3
src/Movim/Daemon/Api.php

@ -7,9 +7,6 @@ use Movim\Bootstrap;
use Psr\Http\Message\ServerRequestInterface;
use React\Socket\Server as Reactor;
use React\Http\Middleware\LimitConcurrentRequestsMiddleware;
use React\Http\Middleware\RequestBodyBufferMiddleware;
use React\Http\Middleware\RequestBodyParserMiddleware;
use React\Http\Server;
use React\Http\Response;

2
src/Movim/Daemon/Session.php

@ -2,8 +2,6 @@
namespace Movim\Daemon;
use Ratchet\ConnectionInterface;
use React\EventLoop\Timer\Timer;
use Movim\Controller\Front;
use App\Session as DBSession;
class Session

1
src/Movim/Widget/Base.php

@ -4,7 +4,6 @@ namespace Movim\Widget;
use Rain\Tpl;
use Movim\Controller\Ajax;
use Movim\User;
use Movim\Template\Partial;
class Base

Loading…
Cancel
Save