*dbprefix*deck_board_acl
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 07ad719c8..04bf575be 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -16,7 +16,7 @@
đź’Ą This is still alpha software: it may not be stable enough for production!
- 0.3.0-dev1
+ 0.3.0-dev2agplJulius HärtlDeck
diff --git a/css/style.scss b/css/style.scss
index e51bb8f90..2305c06c8 100644
--- a/css/style.scss
+++ b/css/style.scss
@@ -601,14 +601,27 @@ input.input-inline {
h4 {
border-bottom: 1px solid $color-lightgrey;
- padding: 15px 0px 5px 0px;
- margin: 0 0 10px 0;
- font-size: 15px;
+ display: flex;
+ flex-direction: row;
+ height: 30px;
+ div:first-child {
+ flex-grow: 1;
+ padding: 15px 0 5px 0;
+ display: inline-block;
- > div {
- display: inline-flex;
- align-content: center;
- justify-content: space-between;
+ }
+ }
+ .section-header {
+ border-bottom: 1px solid $color-lightgrey;
+ display: flex;
+ flex-direction: row;
+ padding: 15px 0 5px 0;
+ margin: 10px 0 10px 0;
+
+ h4 {
+ margin: 0;
+ border: none;
+ margin: 15px 0 5px 0;
}
}
diff --git a/lib/Db/AssignedUsers.php b/lib/Db/AssignedUsers.php
new file mode 100644
index 000000000..d4cd38c0e
--- /dev/null
+++ b/lib/Db/AssignedUsers.php
@@ -0,0 +1,41 @@
+
+ *
+ * @author Julius Härtl
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+namespace OCA\Deck\Db;
+
+use JsonSerializable;
+
+class AssignedUsers extends RelationalEntity implements JsonSerializable {
+
+ public $id;
+ protected $participant;
+ protected $cardId;
+
+ public function __construct() {
+ $this->addType('id', 'integer');
+ $this->addType('card_id', 'integer');
+ $this->addResolvable('participant');
+
+ }
+
+}
\ No newline at end of file
diff --git a/lib/Db/AssignedUsersMapper.php b/lib/Db/AssignedUsersMapper.php
new file mode 100644
index 000000000..d7d0db6f1
--- /dev/null
+++ b/lib/Db/AssignedUsersMapper.php
@@ -0,0 +1,76 @@
+
+ *
+ * @author Julius Härtl
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ *
+ */
+
+
+namespace OCA\Deck\Db;
+
+use OCP\AppFramework\Db\Entity;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\IDBConnection;
+use OCP\IUserManager;
+
+
+class AssignedUsersMapper extends DeckMapper implements IPermissionMapper {
+
+ private $cardMapper;
+ private $userManager;
+
+ public function __construct(IDBConnection $db, CardMapper $cardMapper, IUserManager $userManager) {
+ parent::__construct($db, 'deck_assigned_users', '\OCA\Deck\Db\AssignedUsers');
+ $this->cardMapper = $cardMapper;
+ $this->userManager = $userManager;
+ }
+
+ public function find($cardId) {
+ $sql = 'SELECT * FROM `*PREFIX*deck_assigned_users` ' .
+ 'WHERE `card_id` = ?';
+ $users = $this->findEntities($sql, [$cardId]);
+ foreach ($users as &$user) {
+ $this->mapParticipant($user);
+ }
+ return $users;
+ }
+
+
+ public function isOwner($userId, $cardId) {
+ return $this->cardMapper->isOwner($userId, $cardId);
+ }
+
+ public function findBoardId($cardId) {
+ return $this->cardMapper->findBoardId($cardId);
+
+ }
+
+ public function mapParticipant(AssignedUsers &$assignment) {
+ $userManager = $this->userManager;
+ $assignment->resolveRelation('participant', function() use (&$userManager, &$assignment) {
+ $user = $userManager->get($assignment->getParticipant());
+ if($user !== null) {
+ return new User($user);
+ }
+ return null;
+ });
+ }
+
+
+}
\ No newline at end of file
diff --git a/lib/Db/Card.php b/lib/Db/Card.php
index 59e4d857a..fdcb4d441 100644
--- a/lib/Db/Card.php
+++ b/lib/Db/Card.php
@@ -56,6 +56,7 @@ class Card extends RelationalEntity {
$this->addType('archived', 'boolean');
$this->addType('notified', 'boolean');
$this->addRelation('labels');
+ $this->addRelation('participants');
$this->addResolvable('owner');
}
diff --git a/lib/Db/CardMapper.php b/lib/Db/CardMapper.php
index b8f6e3f94..98c73c892 100644
--- a/lib/Db/CardMapper.php
+++ b/lib/Db/CardMapper.php
@@ -24,6 +24,7 @@
namespace OCA\Deck\Db;
use OCP\AppFramework\Db\Entity;
+use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IUserManager;
use OCP\Notification\IManager;
@@ -103,6 +104,7 @@ class CardMapper extends DeckMapper implements IPermissionMapper {
$card = $this->findEntity($sql, [$id]);
$labels = $this->labelMapper->findAssignedLabelsForCard($card->id);
$card->setLabels($labels);
+
$this->mapOwner($card);
return $card;
}
diff --git a/templates/part.card.php b/templates/part.card.php
index 9e6d60e49..3d7f8a1e4 100644
--- a/templates/part.card.php
+++ b/templates/part.card.php
@@ -47,17 +47,35 @@
-
- t('Due date')); ?>
-
+
+
t('Assign users')); ?>
+
+
+
+
+ {{ $item.participant.displayname }}
+
+
+ {{ sharee.participant.displayname }}
+
+
+ t('No matching user or group found.')); ?>
+
+
+
+
+