make id public, organigram impl. media password/encryption, settings bug fix, Money->FloatInt change, ...

This commit is contained in:
Dennis Eichhorn 2023-05-06 11:42:06 +00:00
parent 95fb269fd5
commit a4d9f7f05e
16 changed files with 57 additions and 57 deletions

View File

@ -198,22 +198,22 @@ final class ApiController extends Controller
foreach ($uploaded as $media) {
$this->createModelRelation(
$request->header->account,
$news->getId(),
$media->getId(),
$news->id,
$media->id,
NewsArticleMapper::class,
'media',
'',
$request->getOrigin()
);
$accountPath = '/Accounts/' . $account->getId() . ' ' . $account->login
$accountPath = '/Accounts/' . $account->id . ' ' . $account->login
. '/News/'
. $news->createdAt->format('Y') . '/' . $news->createdAt->format('m')
. '/' . $news->getId();
. '/' . $news->id;
$ref = new Reference();
$ref->name = $media->name;
$ref->source = new NullMedia($media->getId());
$ref->source = new NullMedia($media->id);
$ref->createdBy = new NullAccount($request->header->account);
$ref->setVirtualPath($accountPath);
@ -222,19 +222,19 @@ final class ApiController extends Controller
if ($collection === null) {
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
if ($collection instanceof NullCollection) {
if ($collection->id === 0) {
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
$accountPath,
$request->header->account,
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->getId() . '/News/' . $news->createdAt->format('Y') . '/' . $news->createdAt->format('m') . '/' . $news->getId()
__DIR__ . '/../../../Modules/Media/Files/Accounts/' . $account->id . '/News/' . $news->createdAt->format('Y') . '/' . $news->createdAt->format('m') . '/' . $news->id
);
}
}
$this->createModelRelation(
$request->header->account,
$collection->getId(),
$ref->getId(),
$collection->id,
$ref->id,
CollectionMapper::class,
'sources',
'',
@ -249,7 +249,7 @@ final class ApiController extends Controller
foreach ($mediaFiles as $media) {
$this->createModelRelation(
$request->header->account,
$news->getId(),
$news->id,
(int) $media,
NewsArticleMapper::class,
'media',
@ -273,7 +273,7 @@ final class ApiController extends Controller
if ($collection === null) {
$collection = MediaMapper::getParentCollection($path)->limit(1)->execute();
if ($collection instanceof NullCollection) {
if ($collection->id === 0) {
$collection = $this->app->moduleManager->get('Media')->createRecursiveMediaCollection(
$path,
$request->header->account,
@ -284,8 +284,8 @@ final class ApiController extends Controller
$this->createModelRelation(
$request->header->account,
$collection->getId(),
$ref->getId(),
$collection->id,
$ref->id,
CollectionMapper::class,
'sources',
'',
@ -310,7 +310,7 @@ final class ApiController extends Controller
. $news->createdAt->format('Y') . '/'
. $news->createdAt->format('m') . '/'
. $news->createdAt->format('d') . '/'
. $news->getId();
. $news->id;
}
/**
@ -337,7 +337,7 @@ final class ApiController extends Controller
// allow comments
if ($request->hasData('allow_comments')
&& !(($commentApi = $this->app->moduleManager->get('Comments')) instanceof NullModule)
&& ($commentApi = $this->app->moduleManager->get('Comments'))::ID > 0
) {
/** @var \Modules\Comments\Controller\ApiController $commentApi */
$commnetList = $commentApi->createCommentList();

View File

@ -91,7 +91,7 @@ final class BackendController extends Controller implements DashboardElementInte
$ids = [];
foreach ($objs as $news) {
$ids[] = $news->getId();
$ids[] = $news->id;
}
/** @var \Modules\News\Models\NewsSeen[] $seenObjects */
@ -171,9 +171,9 @@ final class BackendController extends Controller implements DashboardElementInte
$accountId = $request->header->account;
if ($article->createdBy->getId() !== $accountId
if ($article->createdBy->id !== $accountId
&& !$this->app->accountManager->get($accountId)->hasPermission(
PermissionType::READ, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->getId())
PermissionType::READ, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->id)
) {
$view->setTemplate('/Web/Backend/Error/403_inline');
$response->header->status = RequestStatusCode::R_403;
@ -186,7 +186,7 @@ final class BackendController extends Controller implements DashboardElementInte
->where('seenBy', $request->header->account)
->execute();
if ($seen instanceof NullNewsSeen) {
if ($seen->id === 0) {
$seen = new NewsSeen();
$seen->seenBy = (int) $request->header->account;
$seen->news = (int) $request->getData('id');
@ -199,12 +199,12 @@ final class BackendController extends Controller implements DashboardElementInte
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1000601001, $request, $response));
$view->addData('news', $article);
$view->addData('editable', $this->app->accountManager->get($accountId)->hasPermission(
PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->getId())
PermissionType::MODIFY, $this->app->unitId, $this->app->appId, self::NAME, PermissionCategory::NEWS, $article->id)
);
// allow comments
if (!$article->comments !== null
&& !($this->app->moduleManager->get('Comments') instanceof NullModule)
&& $this->app->moduleManager->get('Comments')::ID > 0
) {
$commentCreateView = new \Modules\Comments\Theme\Backend\Components\Comment\CreateView($this->app->l11nManager, $request, $response);
$commentListView = new \Modules\Comments\Theme\Backend\Components\Comment\ListView($this->app->l11nManager, $request, $response);

View File

@ -39,7 +39,7 @@ class NewsArticle implements \JsonSerializable
* @var int
* @since 1.0.0
*/
protected int $id = 0;
public int $id = 0;
/**
* Title.
@ -71,7 +71,7 @@ class NewsArticle implements \JsonSerializable
* @var int
* @since 1.0.0
*/
private int $type = NewsType::ARTICLE;
public int $type = NewsType::ARTICLE;
/**
* News status.
@ -79,7 +79,7 @@ class NewsArticle implements \JsonSerializable
* @var int
* @since 1.0.0
*/
private int $status = NewsStatus::DRAFT;
public int $status = NewsStatus::DRAFT;
/**
* Language.
@ -87,7 +87,7 @@ class NewsArticle implements \JsonSerializable
* @var string
* @since 1.0.0
*/
private string $language = ISO639x1Enum::_EN;
public string $language = ISO639x1Enum::_EN;
/**
* Unit

View File

@ -30,7 +30,7 @@ class NewsSeen
* @var int
* @since 1.0.0
*/
protected int $id = 0;
public int $id = 0;
public \DateTime $seenAt;

View File

@ -35,7 +35,7 @@ $newsList = $this->getData('news') ?? [];
<?php
$count = 0;
foreach ($newsList as $key => $news) : ++$count;
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->getId());
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->id);
$color = 'darkred';
if ($news->getType() === NewsType::ARTICLE) { $color = 'green'; }

View File

@ -18,8 +18,8 @@ use phpOMS\Uri\UriFactory;
/** @var \Modules\News\Models\NewsArticle[] $newsList */
$newsList = $this->getData('news') ?? [];
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->getId() . '&ptype=p';
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->getId() . '&ptype=n';
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->id . '&ptype=p';
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->id . '&ptype=n';
echo $this->getData('nav')->render(); ?>
@ -84,12 +84,12 @@ echo $this->getData('nav')->render(); ?>
$count = 0;
foreach ($newsList as $key => $news) : ++$count;
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->getId());
$url = UriFactory::build('{/base}/news/article?{?}&id=' . $news->id);
?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><span class="tag"><?= $this->getHtml('TYPE' . $news->getType()); ?></span></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->title); ?></a>
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->getId()); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->id); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->publish->format('Y-m-d')); ?></a>
<?php endforeach; ?>
<?php if ($count === 0) : ?>

View File

@ -19,7 +19,7 @@ use phpOMS\Uri\UriFactory;
/** @var \Modules\News\Models\NewsArticle $news */
$news = $this->getData('news') ?? new NullNewsArticle();
$isNewArticle = $news instanceof NullNewsArticle;
$isNewArticle = $news->id === 0;
$languages = \phpOMS\Localization\ISO639Enum::getConstants();
/** @var \phpOMS\Views\View $this */

View File

@ -20,19 +20,19 @@ use phpOMS\Utils\Parser\Markdown\Markdown;
$newsList = $this->getData('news');
$seen = $this->getData('seen') ?? [];
$previous = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \reset($newsList)->getId() . '&ptype=p';
$next = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \end($newsList)->getId() . '&ptype=n';
$previous = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \reset($newsList)->id . '&ptype=p';
$next = empty($newsList) ? 'news/dashboard' : 'news/dashboard?{?}&id=' . \end($newsList)->id . '&ptype=n';
echo $this->getData('nav')->render(); ?>
<div class="row">
<div class="col-xs-12">
<?php foreach ($newsList as $news) :
$url = UriFactory::build('{/base}/news/article?id=' . $news->getId());
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->getId());
$url = UriFactory::build('{/base}/news/article?id=' . $news->id);
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->id);
?>
<div class="portlet">
<div class="portlet-head">
<?= !($isSeen = \in_array($news->getId(), $seen)) ? '<strong>' : ''; ?>
<?= !($isSeen = \in_array($news->id, $seen)) ? '<strong>' : ''; ?>
<a href="<?= $url; ?>"><?= $this->printHtml($news->title); ?></a>
<span class="floatRight">
<a class="content" href="<?= $profile; ?>"><?= $this->printHtml($this->renderUserName('%3$s %2$s %1$s', [$news->createdBy->name1, $news->createdBy->name2, $news->createdBy->name3, $news->createdBy->login ?? ''])); ?>

View File

@ -18,8 +18,8 @@ use phpOMS\Uri\UriFactory;
/** @var \Modules\News\Models\NewsArticle[] $newsList */
$newsList = $this->getData('news') ?? [];
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->getId() . '&ptype=p';
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->getId() . '&ptype=n';
$previous = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \reset($newsList)->id . '&ptype=p';
$next = empty($newsList) ? 'news/archive' : 'news/archive?{?}&id=' . \end($newsList)->id . '&ptype=n';
echo $this->getData('nav')->render(); ?>
@ -84,12 +84,12 @@ echo $this->getData('nav')->render(); ?>
$count = 0;
foreach ($newsList as $key => $news) : ++$count;
$url = UriFactory::build('{/base}/news/edit?{?}&id=' . $news->getId());
$url = UriFactory::build('{/base}/news/edit?{?}&id=' . $news->id);
?>
<tr tabindex="0" data-href="<?= $url; ?>">
<td><span class="tag"><?= $this->getHtml('TYPE' . $news->getType()); ?></span></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->title); ?></a>
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->getId()); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
<td><a class="content" href="<?= UriFactory::build('{/base}/profile/single?{?}&for=' . $news->createdBy->id); ?>"><?= $this->printHtml($news->createdBy->name2 . ', ' . $news->createdBy->name1); ?></a>
<td><a href="<?= $url; ?>"><?= $this->printHtml($news->publish->format('Y-m-d')); ?></a>
<?php endforeach; ?>
<?php if ($count === 0) : ?>

View File

@ -24,7 +24,7 @@ $editable = $this->getData('editable');
/** @var \Modules\Tag\Models\Tag[] $tags */
$tags = $news->getTags();
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->getId());
$profile = UriFactory::build('profile/single?{?}&id=' . $news->createdBy->id);
/** @var \phpOMS\Views\View $this */
echo $this->getData('nav')->render(); ?>
@ -44,12 +44,12 @@ echo $this->getData('nav')->render(); ?>
<?php endforeach; ?>
<?php $files = $news->getMedia(); foreach ($files as $file) : ?>
<span><a class="content" href="<?= UriFactory::build('{/base}/media/single?id=' . $file->getId());?>"><?= $file->name; ?></a></span>
<span><a class="content" href="<?= UriFactory::build('{/base}/media/single?id=' . $file->id);?>"><?= $file->name; ?></a></span>
<?php endforeach; ?>
</div>
<?php if ($editable) : ?>
<div class="col-xs-6 end-xs plain-grid">
<a tabindex="0" class="button" href="<?= UriFactory::build('{/base}/news/edit?id=' . $news->getId()); ?>"><?= $this->getHtml('Edit'); ?></a>
<a tabindex="0" class="button" href="<?= UriFactory::build('{/base}/news/edit?id=' . $news->id); ?>"><?= $this->getHtml('Edit'); ?></a>
</div>
<?php endif; ?>
</div>

View File

@ -65,7 +65,7 @@ trait ApiControllerNewsArticleTrait
$this->module->apiNewsCreate($request, $response);
self::assertEquals('Controller Test Title', $response->get('')['response']->title);
self::assertGreaterThan(0, $response->get('')['response']->getId());
self::assertGreaterThan(0, $response->get('')['response']->id);
}
/**
@ -99,7 +99,7 @@ trait ApiControllerNewsArticleTrait
$this->module->apiNewsGet($request, $response);
self::assertGreaterThan(0, $response->get('')['response']->getId());
self::assertGreaterThan(0, $response->get('')['response']->id);
}
/**
@ -137,7 +137,7 @@ trait ApiControllerNewsArticleTrait
$request->setData('id', 1);
$this->module->apiNewsDelete($request, $response);
self::assertEquals(1, $response->get('')['response']->getId());
self::assertEquals(1, $response->get('')['response']->id);
self::assertInstanceOf(NullNewsArticle::class, NewsArticleMapper::get()->where('id', 1)->execute());
}
}

View File

@ -50,12 +50,12 @@ final class NewsArticleMapperTest extends \PHPUnit\Framework\TestCase
$news->setType(NewsType::HEADLINE);
$id = NewsArticleMapper::create()->execute($news);
self::assertGreaterThan(0, $news->getId());
self::assertEquals($id, $news->getId());
self::assertGreaterThan(0, $news->id);
self::assertEquals($id, $news->id);
$newsR = NewsArticleMapper::get()->where('id', $news->getId())->execute();
$newsR = NewsArticleMapper::get()->where('id', $news->id)->execute();
self::assertEquals($news->createdAt->format('Y-m-d'), $newsR->createdAt->format('Y-m-d'));
self::assertEquals($news->createdBy->getId(), $newsR->createdBy->getId());
self::assertEquals($news->createdBy->id, $newsR->createdBy->id);
self::assertEquals($news->content, $newsR->content);
self::assertEquals($news->plain, $newsR->plain);
self::assertEquals($news->title, $newsR->title);

View File

@ -46,8 +46,8 @@ final class NewsArticleTest extends \PHPUnit\Framework\TestCase
*/
public function testDefault() : void
{
self::assertEquals(0, $this->news->getId());
self::assertEquals(0, $this->news->createdBy->getId());
self::assertEquals(0, $this->news->id);
self::assertEquals(0, $this->news->createdBy->id);
self::assertEquals('', $this->news->title);
self::assertEquals('', $this->news->content);
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->news->createdAt->format('Y-m-d'));
@ -68,7 +68,7 @@ final class NewsArticleTest extends \PHPUnit\Framework\TestCase
public function testCreatorInputOutput() : void
{
$this->news->createdBy = new NullAccount(1);
self::assertEquals(1, $this->news->createdBy->getId());
self::assertEquals(1, $this->news->createdBy->id);
}
/**

View File

@ -39,7 +39,7 @@ final class NewsSeenTest extends \PHPUnit\Framework\TestCase
*/
public function testDefault() : void
{
self::assertEquals(0, $this->seen->getId());
self::assertEquals(0, $this->seen->id);
self::assertEquals(0, $this->seen->seenBy);
self::assertInstanceOf('\DateTime', $this->seen->seenAt);
}

View File

@ -37,6 +37,6 @@ final class NullNewsArticleTest extends \PHPUnit\Framework\TestCase
public function testId() : void
{
$null = new NullNewsArticle(2);
self::assertEquals(2, $null->getId());
self::assertEquals(2, $null->id);
}
}

View File

@ -37,6 +37,6 @@ final class NullNewsSeenTest extends \PHPUnit\Framework\TestCase
public function testId() : void
{
$null = new NullNewsSeen(2);
self::assertEquals(2, $null->getId());
self::assertEquals(2, $null->id);
}
}