Commit cf1ddd5e authored by Mark Harding's avatar Mark Harding

(chore): use a const instead of var

1 merge request!391[Sprint/RollingRabbit](fix): Updated returned exception of offending spam link. #1104
Pipeline #98602648 failed with stages
in 2 minutes and 36 seconds
......@@ -3,29 +3,13 @@
namespace Minds\Core\Security;
/**
* @author Ben
* @desc holds the list of prohibited domains.
* Domains listed here has been blacklisted due to spam.
* Short urls are also not allowed due to security issues.
*/
class ProhibitedDomains
{
public function __construct()
{
}
/**
* getter for prohibitedDomains
*
* @return array an array of prohibited domains.
*/
public function get(): array
{
return $this->prohibitedDomains;
}
private $prohibitedDomains = [ //shorts
// 't.co', 'goo.gl', 'ow.ly', 'bitly.com', 'bit.ly','tinyurl.com','bit.do','go2.do',
// 'adf.ly', 'adcrun.ch', 'zpag.es','ity.im', 'q.gs', 'lnk.co', 'is.gd',
//full
/** @var array */
const DOMAINS = [
'movieblog.tumblr.com',
'moviehdstream.wordpress.com',
'moviehq.tumblr.com',
......@@ -263,7 +247,6 @@ class ProhibitedDomains
'samuelsconstruction.build',
'pmwares.com',
'watchesofwales.co.uk',
//'.ru',
'zotero.org',
'speakerdeck.com',
'freesiteslike.com',
......
......@@ -8,39 +8,34 @@ use Minds\Core\Security\ProhibitedDomains;
class Spam
{
/** @var ProhibitedDomains $prohibitedDomains */
protected $prohibitedDomains;
public function __construct(
$prohibitedDomains = null
) {
$this->prohibitedDomains = $prohibitedDomains ?? new ProhibitedDomains();
}
public function check($entity)
/**
* Check for spam
* @param mixed $entity
* @return bool
*/
public function check($entity): bool
{
$prohibitedDomains = $this->prohibitedDomains->get();
$foundSpam = false;
switch ($entity->getType()) {
case 'comment':
$foundSpam = Text::strposa($entity->getBody(), $prohibitedDomains);
$foundSpam = Text::strposa($entity->getBody(), ProhibitedDomains::DOMAINS);
break;
case 'activity':
$foundSpam = Text::strposa($entity->getMessage(), $prohibitedDomains);
$foundSpam = Text::strposa($entity->getMessage(), ProhibitedDomains::DOMAINS);
break;
case 'object':
if ($entity->getSubtype() === 'blog') {
$foundSpam = Text::strposa($entity->getBody(), $prohibitedDomains);
$foundSpam = Text::strposa($entity->getBody(), ProhibitedDomains::DOMAINS);
break;
}
$foundSpam = Text::strposa($entity->getDescription(), $prohibitedDomains);
$foundSpam = Text::strposa($entity->getDescription(), ProhibitedDomains::DOMAINS);
break;
case 'user':
$foundSpam = Text::strposa($entity->briefdescription, $prohibitedDomains);
$foundSpam = Text::strposa($entity->briefdescription, ProhibitedDomains::DOMAINS);
break;
case 'group':
$foundSpam = Text::strposa($entity->getBriefDescription(), $prohibitedDomains);
$foundSpam = Text::strposa($entity->getBriefDescription(), ProhibitedDomains::DOMAINS);
break;
default:
error_log("[spam-check]: $entity->type:$entity->subtype not supported");
......
Please register or to comment