constructor(
private linkService: LinkService,
private groupsService: GroupsService,
- ) {}
+ ) { }
create(data: { userUuid: string; resource: { uuid: string; name: string } }) {
- return this.linkService.create({
- ownerUuid: data.userUuid,
+ const l = this.linkService.create({
+ // If this is for the all users group, it must be owned by
+ // the system user.
+ ownerUuid: (data.userUuid.substr(-22) === "-j7d0g-fffffffffffffff" ?
+ data.userUuid.substr(0, 5) + "-tpzed-000000000000000"
+ : data.userUuid),
tailUuid: data.userUuid,
headUuid: data.resource.uuid,
linkClass: LinkClass.STAR,
name: data.resource.name
});
+
+ if (data.userUuid.substr(-22) === "-j7d0g-fffffffffffffff") {
+ // If this is for the all users group, we need to create a
+ // permission link as well.
+ l.then(result =>
+ this.linkService.create({
+ tailUuid: data.userUuid,
+ headUuid: result.uuid,
+ linkClass: LinkClass.PERMISSION,
+ name: "can_read"
+ }));
+ }
+
+ return l;
}
delete(data: { userUuid: string; resourceUuid: string; }) {
return this.linkService
.list({
filters: new FilterBuilder()
- .addEqual('tailUuid', data.userUuid)
- .addEqual('headUuid', data.resourceUuid)
- .addEqual('linkClass', LinkClass.STAR)
+ .addEqual('tail_uuid', data.userUuid)
+ .addEqual('head_uuid', data.resourceUuid)
+ .addEqual('link_class', LinkClass.STAR)
.getFilters()
})
.then(results => Promise.all(
list(userUuid: string, { filters, limit, offset, linkOrder, contentOrder }: FavoriteListArguments = {}): Promise<ListResults<GroupContentsResource>> {
const listFilters = new FilterBuilder()
- .addEqual('tailUuid', userUuid)
- .addEqual('linkClass', LinkClass.STAR)
+ .addEqual('owner_uuid', userUuid)
+ .addEqual('link_class', LinkClass.STAR)
.getFilters();
return this.linkService
.list({
- filters: joinFilters(filters, listFilters),
+ filters: joinFilters(filters || '', listFilters),
limit,
offset,
order: linkOrder
return this.linkService
.list({
filters: new FilterBuilder()
- .addIn("headUuid", resourceUuids)
- .addEqual("tailUuid", userUuid)
- .addEqual("linkClass", LinkClass.STAR)
+ .addIn("head_uuid", resourceUuids)
+ .addEqual("tail_uuid", userUuid)
+ .addEqual("link_class", LinkClass.STAR)
.getFilters()
})
.then(({ items }) => resourceUuids.reduce((results, uuid) => {