Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
69b530a
Basic implementation of resource and collection handling
nickvergessen Sep 14, 2018
65a9ab4
Add a controller with the most important methods
nickvergessen Oct 16, 2018
136d2c3
Provider functionality
nickvergessen Oct 17, 2018
5dfc56e
Allow to create collections
nickvergessen Oct 18, 2018
702dcfb
Make names mandatory
nickvergessen Oct 24, 2018
ab4b293
Insert new collection into database
juliusknorr Oct 29, 2018
d6aae43
Move files_sharing to webpack
juliusknorr Jan 17, 2019
322f7c3
Add vue app for collaboration resources
juliusknorr Jan 17, 2019
a72a6d7
Adjust parameter names on createCollectionOnResource
juliusknorr Jan 22, 2019
7a4b2db
Add javascript API for collaboration resources
juliusknorr Oct 22, 2018
51057c5
Use proper public javascript methods
juliusknorr Jan 23, 2019
7843b8b
Adjust OCP.Collaboration
juliusknorr Jan 23, 2019
555afff
Make sure we query the node before fetching the name
juliusknorr Jan 23, 2019
88aa3de
Add iconClass to resources
juliusknorr Jan 23, 2019
d85e3e3
Allow apps to register resource providers
juliusknorr Jan 24, 2019
506eb88
Only call resource provider if type matches
juliusknorr Jan 24, 2019
3777df6
Add link to resource provider
juliusknorr Jan 24, 2019
53ac9bd
Implement frontend for search/rename
juliusknorr Jan 29, 2019
e404ce7
Implement search and rename in backend
juliusknorr Jan 29, 2019
d1a4856
Add eslint settings and reorganize files
juliusknorr Jan 31, 2019
31340b8
Add icon for resource type and icons for folder/file
juliusknorr Jan 31, 2019
dee6f7f
Fix doc blocks
nickvergessen Feb 7, 2019
ece471d
Start implementing access cache
nickvergessen Feb 7, 2019
59c92a7
Further work on the access cache
nickvergessen Feb 11, 2019
a8a5472
Improve searchCollections()
nickvergessen Feb 11, 2019
c8c59e6
Make sure the results are always sorted the same
nickvergessen Feb 11, 2019
103298e
Use icon-close to remove resources
juliusknorr Feb 14, 2019
fd434da
Fix SQL statement and provider method call
juliusknorr Feb 16, 2019
cab704f
Merge webpack into main one
juliusknorr Feb 20, 2019
7207a77
Use nextcloud-vue-collections library
juliusknorr Feb 21, 2019
43c8d0c
Add default value, because null does not trigger unique-key
nickvergessen Feb 22, 2019
eecd932
Also check the access to collections on preparing
nickvergessen Feb 22, 2019
995cad0
Cache the access manually too
nickvergessen Feb 22, 2019
901f1d4
Don't throw on UniqueConstraintViolationException since a written val…
nickvergessen Feb 22, 2019
30dff37
Add invalidation methods to the interface
nickvergessen Feb 22, 2019
1a73cab
Fix doc block
nickvergessen Feb 22, 2019
066238a
Fix unused variable $access
nickvergessen Feb 22, 2019
4113505
Also cache the resource type because it is part of the identifier
nickvergessen Feb 22, 2019
55ae7fa
Invalidate the cache when a share is updated
nickvergessen Feb 22, 2019
01b4db6
Add dispatcher events to User and Group objects
nickvergessen Feb 22, 2019
752276f
Add a listener for the events
nickvergessen Feb 22, 2019
fdfe984
Register providers via class names
nickvergessen Feb 22, 2019
1c4436d
Access for a collection can only become true
nickvergessen Feb 22, 2019
55cd9ea
Update autoloader
nickvergessen Feb 22, 2019
37e6488
Use nextcloud-vue-collection 0.1.2
juliusknorr Feb 22, 2019
ba2b542
Listen to IUser::postDelete
juliusknorr Feb 24, 2019
6ee7286
Fix tests
juliusknorr Feb 24, 2019
c778032
Properly handle null as ownerId if file system access is denied by ac…
juliusknorr Feb 24, 2019
e5162fb
Fix tests
juliusknorr Feb 24, 2019
f0e50bc
Fetch node and filename also if access cache was used
juliusknorr Feb 24, 2019
0c32b21
Fix files_external tests
nickvergessen Feb 25, 2019
48f34b8
Add bundled files
juliusknorr Feb 21, 2019
ca0624d
Remove unneeded files
juliusknorr Mar 1, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix SQL statement and provider method call
Signed-off-by: Julius Härtl <[email protected]>
  • Loading branch information
juliusknorr committed Mar 1, 2019
commit fd434da9590ea28f2feec0db02b37082eabfb876
26 changes: 13 additions & 13 deletions lib/private/Collaboration/Resources/Manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,11 @@ public function getCollectionForUser(int $id, ?IUser $user): ICollection {
$userId = $user instanceof IUser ? $user->getUID() : '';

$query->select('*')
->from(self::TABLE_COLLECTIONS)
->from(self::TABLE_COLLECTIONS, 'c')
->leftJoin(
'r', self::TABLE_ACCESS_CACHE, 'a',
'c', self::TABLE_ACCESS_CACHE, 'a',
$query->expr()->andX(
$query->expr()->eq('c.id', 'a.resource_id'),
$query->expr()->eq('c.id', 'a.collection_id'),
$query->expr()->eq('a.user_id', $query->createNamedParameter($userId, IQueryBuilder::PARAM_STR))
)
)
Expand All @@ -103,10 +103,10 @@ public function getCollectionForUser(int $id, ?IUser $user): ICollection {
$access = $row['access'] === null ? null : (bool) $row['access'];
if ($user instanceof IUser) {
$access = [$user->getUID() => $access];
return new Collection($this, $this->connection, (int) $row['id'], (string) $row['name'], $access, null);
return new Collection($this, $this->connection, (int) $row['id'], (string) $row['name'], $user, null);
}

return new Collection($this, $this->connection, (int) $row['id'], (string) $row['name'], [], $access);
return new Collection($this, $this->connection, (int) $row['id'], (string) $row['name'], $user, $access);
}

/**
Expand All @@ -122,16 +122,16 @@ public function searchCollections(IUser $user, string $filter, int $limit = 50,
$userId = $user instanceof IUser ? $user->getUID() : '';

$query->select('c.*', 'a.access')
->from(self::TABLE_COLLECTIONS)
->from(self::TABLE_COLLECTIONS, 'c')
->leftJoin(
'r', self::TABLE_ACCESS_CACHE, 'a',
'c', self::TABLE_ACCESS_CACHE, 'a',
$query->expr()->andX(
$query->expr()->eq('c.id', 'a.resource_id'),
$query->expr()->eq('c.id', 'a.collection_id'),
$query->expr()->eq('a.user_id', $query->createNamedParameter($userId, IQueryBuilder::PARAM_STR))
)
)
->where($query->expr()->iLike('c.name', $query->createNamedParameter($filter, IQueryBuilder::PARAM_STR)))
->andWhere($query->expr()->neq('a.access', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
->andWhere($query->expr()->eq('a.access', $query->createNamedParameter(1, IQueryBuilder::PARAM_INT)))
->orderBy('c.id')
->setMaxResults($limit)
->setFirstResult($start);
Expand Down Expand Up @@ -199,14 +199,14 @@ public function getResourceForUser(string $type, string $id, ?IUser $user): IRes
->leftJoin(
'r', self::TABLE_ACCESS_CACHE, 'a',
$query->expr()->andX(
$query->expr()->eq('r.id', 'a.resource_id'),
$query->expr()->eq('r.resource_id', 'a.resource_id'),
$query->expr()->eq('a.user_id', $query->createNamedParameter($userId, IQueryBuilder::PARAM_STR))
)
)
->where($query->expr()->eq('r.resource_type', $query->createNamedParameter($type, IQueryBuilder::PARAM_STR)))
->andWhere($query->expr()->eq('r.resource_id', $query->createNamedParameter($id, IQueryBuilder::PARAM_STR)));
$result = $query->execute();
$row = $result;
$row = $result->fetch();
$result->closeCursor();

if (!$row) {
Expand Down Expand Up @@ -236,7 +236,7 @@ public function getResourcesByCollectionForUser(ICollection $collection, ?IUser
->leftJoin(
'r', self::TABLE_ACCESS_CACHE, 'a',
$query->expr()->andX(
$query->expr()->eq('r.id', 'a.resource_id'),
$query->expr()->eq('r.resource_id', 'a.resource_id'),
$query->expr()->eq('a.user_id', $query->createNamedParameter($userId, IQueryBuilder::PARAM_STR))
)
)
Expand Down Expand Up @@ -312,7 +312,7 @@ public function canAccessResource(IResource $resource, ?IUser $user): bool {
foreach ($this->getProviders() as $provider) {
if ($provider->getType() === $resource->getType()) {
try {
if ($provider->canAccess($resource, $user)) {
if ($provider->canAccessResource($resource, $user)) {
$access = true;
break;
}
Expand Down