Compare commits

...

5 commits

Author SHA1 Message Date
n1rwana
59156cd605
Merge a16e15eaef into 228f14e384 2025-01-31 11:18:52 +02:00
koke228666
228f14e384
feat(documents): add download icon for documents (#1216) 2025-01-31 00:39:58 +02:00
celestora
4166481a75
fix(im): escape html in sent messages too (#1218)
fixes #1215
2025-01-30 00:13:20 +03:00
7fe0c6a122
ci(actions): unparallel builds (#1217)
this should fix linux/amd64 showing up as unknown/unknown on ghcr
2025-01-28 20:41:26 +03:00
n1rwana
a16e15eaef
Фикс проверки заблокированных ссылок 2023-08-05 14:49:41 +03:00
8 changed files with 147 additions and 132 deletions

View file

@ -6,14 +6,11 @@ env:
BASE_IMAGE_NAME: openvk
DB_IMAGE_NAME: mariadb
EVENT_IMAGE_NAME: mariadb
DB_VERSION: "10.9"
DB_VERSION: '10.9'
jobs:
buildbase:
name: Build base images
strategy:
matrix:
platform: [amd64, arm64]
runs-on: ubuntu-latest
@ -24,6 +21,8 @@ jobs:
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Change repository string to lowercase
id: repositorystring
@ -53,7 +52,7 @@ jobs:
- name: Build base image
uses: docker/build-push-action@v6
with:
platforms: linux/${{matrix.platform}}
platforms: linux/amd64,linux/arm64
file: install/automated/docker/openvk.Dockerfile
tags: ${{ steps.basemeta.outputs.tags }}
labels: ${{ steps.basemeta.outputs.labels }}
@ -63,9 +62,6 @@ jobs:
builddb:
name: Build DB images
strategy:
matrix:
platform: [amd64, arm64]
runs-on: ubuntu-latest
@ -76,6 +72,8 @@ jobs:
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Change repository string to lowercase
id: repositorystring
@ -125,7 +123,7 @@ jobs:
uses: docker/build-push-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/${{matrix.platform}}
platforms: linux/amd64,linux/arm64
file: install/automated/docker/mariadb-primary.Dockerfile
tags: ${{ steps.db-primarymeta.outputs.tags }}
labels: ${{ steps.db-primarymeta.outputs.labels }}
@ -136,7 +134,7 @@ jobs:
uses: docker/build-push-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/${{matrix.platform}}
platforms: linux/amd64,linux/arm64
file: install/automated/docker/mariadb-eventdb.Dockerfile
tags: ${{ steps.db-eventmeta.outputs.tags }}
labels: ${{ steps.db-eventmeta.outputs.labels }}

View file

@ -39,7 +39,7 @@ class BannedLink extends RowModel
function getRegexpRule(): string
{
return addslashes("/" . $this->getDomain() . $this->getRawRegexp() . "/");
return "/^" . $this->getDomain() . "\/" . $this->getRawRegexp() . "$/i";
}
function getRawRegexp(): string

View file

@ -3,6 +3,7 @@ namespace openvk\Web\Models\Repositories;
use Chandler\Database\DatabaseConnection as DB;
use Nette\Database\Table\{ActiveRow, Selection};
use openvk\Web\Models\Entities\BannedLink;
use function Symfony\Component\Translation\t;
class BannedLinks
{
@ -43,7 +44,7 @@ class BannedLinks
function isDomainBanned(string $domain): bool
{
return sizeof($this->bannedLinks->where(["link" => $domain, "regexp_rule" => ""])) > 0;
return sizeof($this->bannedLinks->where(["domain" => $domain, "regexp_rule" => ""])) > 0;
}
function genLinks($rules): \Traversable
@ -57,12 +58,14 @@ class BannedLinks
foreach($links as $link)
if (preg_match($link->getRegexpRule(), $uri))
yield $link->getId();
else if ($this->isDomainBanned($link->getDomain()))
yield $link->getId();
}
function check(string $url): ?array
{
$uri = strstr(str_replace(["https://", "http://"], "", $url), "/", true);
$domain = str_replace("www.", "", $uri);
$uri = str_replace(["https://", "http://"], "", $url);
$domain = explode("/", str_replace("www.", "", $uri))[0];
$rules = $this->getByDomain($domain);
if (is_null($rules))

View file

@ -481,7 +481,7 @@ final class AdminPresenter extends OpenVKPresenter
if ($link) {
$link->setDomain($new_domain ?? $this->postParam("link"));
$link->setReason($new_reason);
$link->setRegexp_rule($this->postParam("regexp"));
$link->setRegexp_rule(mb_strlen(trim($this->postParam("regexp"))) > 0 ? $this->postParam("regexp") : "");
$link->save();
} else {
if (!$new_domain)
@ -490,7 +490,7 @@ final class AdminPresenter extends OpenVKPresenter
$link = new BannedLink;
$link->setDomain($new_domain);
$link->setReason($new_reason);
$link->setRegexp_rule($this->postParam("regexp"));
$link->setRegexp_rule(mb_strlen(trim($this->postParam("regexp"))) > 0 ? $this->postParam("regexp") : "");
$link->setInitiator($this->user->identity->getId());
$link->save();

View file

@ -7,7 +7,7 @@ final class AwayPresenter extends OpenVKPresenter
{
function renderAway(): void
{
$checkBanEntries = (new BannedLinks)->check($this->queryParam("to") . "/");
$checkBanEntries = (new BannedLinks)->check($this->queryParam("to"));
if (OPENVK_ROOT_CONF["openvk"]["preferences"]["susLinks"]["warnings"])
if (sizeof($checkBanEntries) > 0)
$this->pass("openvk!Away->view", $checkBanEntries[0]);

View file

@ -232,7 +232,7 @@
sendMessage(content) {
console.debug("New outcoming message. Pushing preview to local stack.");
let tempId = this.newMessage(content);
let tempId = this.newMessage(escapeHtml(content));
let msgData = new FormData();
msgData.set("content", content);

View file

@ -4173,6 +4173,16 @@ hr {
color: #6b6b6b;
}
.doc_icon.no_image span::before {
content: '';
display: inline-block;
width: 10px;
height: 10px;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAYAAABmBXS+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAABYSURBVChTY2RAAvNnzmwBUtVA3JqYnl4DFgQCJigNAyAFyDQYoCvCCohSxAh0x38oGydANwmmAUUjE9AXKD5EByB5uAIka0E0WBxmAHo4wa3BawOmRxgYAOA2GQMa5cgCAAAAAElFTkSuQmCC");
transform: translateY(2px) translateX(-3px);
background-repeat: no-repeat;
}
.docListViewItem .doc_icon img {
width: 100%;
height: 100%;

View file

@ -656,3 +656,7 @@ ul {
.docListViewItem .doc_content b {
color: #7c94c5;
}
.doc_icon.no_image span::before {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAKCAYAAABmBXS+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsAAAA7AAWrWiQkAAABXSURBVChTY2RAAoFe9ZuEBOR93314uHn9tkY/qDADE5QGA5ACZBoGUBThAkQpYkyOmvcfysYJiDMJROAzbe6yJEZ4EGBTCFIAolHCCVkhTAFWgGkiAwMAzxkZ3qVQ7YEAAAAASUVORK5CYII=");
}