@glissandoo/lib 1.104.4 → 1.104.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/functions/groupPlayer.d.ts +4 -2
- package/functions/index.d.ts +1 -1
- package/functions/index.js +1 -1
- package/functions/regions.js +1 -1
- package/helpers/errors.d.ts +1 -0
- package/helpers/errors.js +1 -0
- package/models/Group/Player/index.d.ts +1 -0
- package/models/Group/Player/index.js +3 -0
- package/models/Group/Player/types.d.ts +2 -0
- package/models/Group/index.d.ts +4 -1
- package/models/Group/index.js +12 -0
- package/models/Group/types.d.ts +11 -0
- package/models/Group/types.js +12 -1
- package/models/User/Group/index.d.ts +1 -0
- package/models/User/Group/index.js +3 -0
- package/models/User/Group/types.d.ts +2 -1
- package/package.json +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { InstrumentId } from '../helpers/instruments';
|
|
2
|
+
import { AdminPermissions } from '../models/Group/types';
|
|
2
3
|
export declare namespace GroupPlayerFbFunctionsTypes {
|
|
3
|
-
interface
|
|
4
|
+
interface SetPermissionsParams {
|
|
4
5
|
userId: string;
|
|
5
6
|
groupId: string;
|
|
7
|
+
permissions: AdminPermissions[];
|
|
6
8
|
}
|
|
7
|
-
type
|
|
9
|
+
type SetPermissionsResult = void;
|
|
8
10
|
interface AddParams {
|
|
9
11
|
userId: string;
|
|
10
12
|
groupId: string;
|
package/functions/index.d.ts
CHANGED
|
@@ -80,7 +80,7 @@ export declare enum FbFunctionName {
|
|
|
80
80
|
GroupPlayerLeave = "groupPlayer-leave",
|
|
81
81
|
GroupPlayerOnUpdate = "groupPlayer-onUpdate",
|
|
82
82
|
GroupPlayerRemove = "groupPlayer-remove",
|
|
83
|
-
|
|
83
|
+
GroupPlayerSetPermissions = "groupPlayer-updatePermis",
|
|
84
84
|
GroupPlayerUpdateInstruments = "groupPlayer-updateInstruments",
|
|
85
85
|
GroupPublish = "group-publish",
|
|
86
86
|
GroupRemove = "group-remove",
|
package/functions/index.js
CHANGED
|
@@ -84,7 +84,7 @@ var FbFunctionName;
|
|
|
84
84
|
FbFunctionName["GroupPlayerLeave"] = "groupPlayer-leave";
|
|
85
85
|
FbFunctionName["GroupPlayerOnUpdate"] = "groupPlayer-onUpdate";
|
|
86
86
|
FbFunctionName["GroupPlayerRemove"] = "groupPlayer-remove";
|
|
87
|
-
FbFunctionName["
|
|
87
|
+
FbFunctionName["GroupPlayerSetPermissions"] = "groupPlayer-updatePermis";
|
|
88
88
|
FbFunctionName["GroupPlayerUpdateInstruments"] = "groupPlayer-updateInstruments";
|
|
89
89
|
FbFunctionName["GroupPublish"] = "group-publish";
|
|
90
90
|
FbFunctionName["GroupRemove"] = "group-remove";
|
package/functions/regions.js
CHANGED
|
@@ -91,7 +91,7 @@ const regionByFunctions = {
|
|
|
91
91
|
[index_1.FbFunctionName.GroupPlayerLeave]: GCloudRegions.UsCentral1,
|
|
92
92
|
[index_1.FbFunctionName.GroupPlayerOnUpdate]: GCloudRegions.UsCentral1,
|
|
93
93
|
[index_1.FbFunctionName.GroupPlayerRemove]: GCloudRegions.UsCentral1,
|
|
94
|
-
[index_1.FbFunctionName.
|
|
94
|
+
[index_1.FbFunctionName.GroupPlayerSetPermissions]: GCloudRegions.EuropeWest6,
|
|
95
95
|
[index_1.FbFunctionName.GroupPlayerUpdateInstruments]: GCloudRegions.UsCentral1,
|
|
96
96
|
[index_1.FbFunctionName.GroupPublish]: GCloudRegions.EuropeWest6,
|
|
97
97
|
[index_1.FbFunctionName.GroupRemove]: GCloudRegions.UsCentral1,
|
package/helpers/errors.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare enum HttpsErrorMessages {
|
|
|
7
7
|
InvalidGroupPlayer = "error.group.noPlayer",
|
|
8
8
|
InvalidGroupPartnership = "error.group.partnership",
|
|
9
9
|
InvalidAdminGroup = "error.group.noAdmin",
|
|
10
|
+
InvalidPermissionsGroup = "error.group.noPermissions",
|
|
10
11
|
InvalidAdminAction = "error.federation.admin",
|
|
11
12
|
InvalidLinkInvitation = "groupPlayer.join.linkNoValid",
|
|
12
13
|
InvalidJoinPlayer = "groupPlayer.join.isPlayer",
|
package/helpers/errors.js
CHANGED
|
@@ -8,6 +8,7 @@ var HttpsErrorMessages;
|
|
|
8
8
|
HttpsErrorMessages["InvalidGroupPlayer"] = "error.group.noPlayer";
|
|
9
9
|
HttpsErrorMessages["InvalidGroupPartnership"] = "error.group.partnership";
|
|
10
10
|
HttpsErrorMessages["InvalidAdminGroup"] = "error.group.noAdmin";
|
|
11
|
+
HttpsErrorMessages["InvalidPermissionsGroup"] = "error.group.noPermissions";
|
|
11
12
|
HttpsErrorMessages["InvalidAdminAction"] = "error.federation.admin";
|
|
12
13
|
HttpsErrorMessages["InvalidLinkInvitation"] = "groupPlayer.join.linkNoValid";
|
|
13
14
|
HttpsErrorMessages["InvalidJoinPlayer"] = "groupPlayer.join.isPlayer";
|
|
@@ -14,6 +14,7 @@ export default class GroupPlayer extends UserExtended<GroupPlayerData> {
|
|
|
14
14
|
get instrumentsLastUpdatedBy(): string | null;
|
|
15
15
|
get role(): GroupPlayerRole;
|
|
16
16
|
get isAdmin(): boolean;
|
|
17
|
+
get permissions(): import("../types").AdminPermissions[];
|
|
17
18
|
get joinedAt(): FirebaseFirestore.Timestamp;
|
|
18
19
|
get leavedAt(): FirebaseFirestore.Timestamp | null;
|
|
19
20
|
get leavedBy(): string | null;
|
|
@@ -2,6 +2,7 @@ import { Timestamp } from '@google-cloud/firestore';
|
|
|
2
2
|
import { InstrumentId } from '../../../helpers/instruments';
|
|
3
3
|
import { Descendant } from '../../../helpers/slate';
|
|
4
4
|
import { UserExtendedData } from '../../User/types';
|
|
5
|
+
import { AdminPermissions } from '../types';
|
|
5
6
|
export declare enum GroupPlayerRole {
|
|
6
7
|
Admin = "admin",
|
|
7
8
|
Member = "member",
|
|
@@ -15,6 +16,7 @@ export interface GroupPlayerData extends UserExtendedData {
|
|
|
15
16
|
instruments: InstrumentId[];
|
|
16
17
|
instrumentsLastUpdatedBy: string;
|
|
17
18
|
role: GroupPlayerRole;
|
|
19
|
+
permissions: AdminPermissions[];
|
|
18
20
|
joinedAt: Timestamp;
|
|
19
21
|
leavedAt: Timestamp | null;
|
|
20
22
|
leavedBy: string | null;
|
package/models/Group/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { LanguagesTypes } from '../../lang';
|
|
|
4
4
|
import { EventPlayerStatus } from '../Evento/Player/types';
|
|
5
5
|
import { DocumentModel } from '../Model';
|
|
6
6
|
import GroupBasic from './basic';
|
|
7
|
-
import { CustomGroupInstrument, GroupConfigShowAttendanceToMembers, GroupData, GroupStatus, SocialNetwork } from './types';
|
|
7
|
+
import { AdminPermissions, CustomGroupInstrument, GroupConfigShowAttendanceToMembers, GroupData, GroupStatus, SocialNetwork } from './types';
|
|
8
8
|
export default class Group extends GroupBasic<GroupData> {
|
|
9
9
|
constructor(doc: DocumentModel, lang?: LanguagesTypes);
|
|
10
10
|
get owner(): DocumentReference;
|
|
@@ -19,6 +19,9 @@ export default class Group extends GroupBasic<GroupData> {
|
|
|
19
19
|
get invitationEmails(): string[];
|
|
20
20
|
get shortDynamicLink(): string;
|
|
21
21
|
get admins(): string[];
|
|
22
|
+
get adminPermissions(): Record<string, AdminPermissions[]>;
|
|
23
|
+
permissionsByAdmin(userId: string): AdminPermissions[];
|
|
24
|
+
adminsByPermissions(permission: AdminPermissions): string[];
|
|
22
25
|
get createdAt(): FirebaseFirestore.Timestamp;
|
|
23
26
|
get deletedAt(): FirebaseFirestore.Timestamp | null;
|
|
24
27
|
get deletedBy(): string | null;
|
package/models/Group/index.js
CHANGED
|
@@ -66,6 +66,18 @@ class Group extends basic_1.default {
|
|
|
66
66
|
get admins() {
|
|
67
67
|
return this.data.administrators || [];
|
|
68
68
|
}
|
|
69
|
+
get adminPermissions() {
|
|
70
|
+
return this.data.adminPermissions || {};
|
|
71
|
+
}
|
|
72
|
+
permissionsByAdmin(userId) {
|
|
73
|
+
return this.adminPermissions[userId] || [];
|
|
74
|
+
}
|
|
75
|
+
adminsByPermissions(permission) {
|
|
76
|
+
return this.admins.filter((adminId) => {
|
|
77
|
+
const permissions = this.permissionsByAdmin(adminId);
|
|
78
|
+
return permissions.includes(permission);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
69
81
|
get createdAt() {
|
|
70
82
|
return this.data.createdAt;
|
|
71
83
|
}
|
package/models/Group/types.d.ts
CHANGED
|
@@ -12,6 +12,16 @@ export interface GroupOnboardingMessage {
|
|
|
12
12
|
via: string;
|
|
13
13
|
to: string[];
|
|
14
14
|
}
|
|
15
|
+
export declare enum AdminPermissions {
|
|
16
|
+
Owner = "owner",
|
|
17
|
+
Events = "events",
|
|
18
|
+
Rollcall = "rollcall",
|
|
19
|
+
Members = "members",
|
|
20
|
+
Repertoire = "repertoire",
|
|
21
|
+
Communications = "communications",
|
|
22
|
+
Offers = "offers",
|
|
23
|
+
Billing = "billing"
|
|
24
|
+
}
|
|
15
25
|
export declare enum GroupConfigKey {
|
|
16
26
|
IncludesMembersToEventsWhenJoined = "includesMembersToEventsWhenJoined",
|
|
17
27
|
AllowEditInstruments = "allowEditInstruments",
|
|
@@ -152,6 +162,7 @@ export interface GroupData extends GroupBasicData {
|
|
|
152
162
|
players: Record<string, PlayerBasicData>;
|
|
153
163
|
templates: Record<string, GroupTemplateData>;
|
|
154
164
|
administrators: string[];
|
|
165
|
+
adminPermissions: Record<string, AdminPermissions[]>;
|
|
155
166
|
addresses: GroupAddressData[];
|
|
156
167
|
activeInvitationLink: boolean;
|
|
157
168
|
invitationEmails: string[];
|
package/models/Group/types.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GroupRepertoireTagDefault = exports.GroupRepertoireTagReserved = exports.SocialNetwork = exports.GroupStatus = exports.GroupConfigShowAttendanceToMembers = exports.GroupConfigSitesKey = exports.GroupConfigKey = void 0;
|
|
3
|
+
exports.GroupRepertoireTagDefault = exports.GroupRepertoireTagReserved = exports.SocialNetwork = exports.GroupStatus = exports.GroupConfigShowAttendanceToMembers = exports.GroupConfigSitesKey = exports.GroupConfigKey = exports.AdminPermissions = void 0;
|
|
4
|
+
var AdminPermissions;
|
|
5
|
+
(function (AdminPermissions) {
|
|
6
|
+
AdminPermissions["Owner"] = "owner";
|
|
7
|
+
AdminPermissions["Events"] = "events";
|
|
8
|
+
AdminPermissions["Rollcall"] = "rollcall";
|
|
9
|
+
AdminPermissions["Members"] = "members";
|
|
10
|
+
AdminPermissions["Repertoire"] = "repertoire";
|
|
11
|
+
AdminPermissions["Communications"] = "communications";
|
|
12
|
+
AdminPermissions["Offers"] = "offers";
|
|
13
|
+
AdminPermissions["Billing"] = "billing";
|
|
14
|
+
})(AdminPermissions = exports.AdminPermissions || (exports.AdminPermissions = {}));
|
|
4
15
|
var GroupConfigKey;
|
|
5
16
|
(function (GroupConfigKey) {
|
|
6
17
|
GroupConfigKey["IncludesMembersToEventsWhenJoined"] = "includesMembersToEventsWhenJoined";
|
|
@@ -7,6 +7,7 @@ export default class UserGroup extends GroupBasic<UserGroupData> {
|
|
|
7
7
|
constructor(doc: DocumentModel, lang?: LanguagesTypes);
|
|
8
8
|
get groupId(): string;
|
|
9
9
|
get mainInstrument(): import("../../../helpers/instruments").InstrumentId;
|
|
10
|
+
get permissions(): import("../../Group/types").AdminPermissions[];
|
|
10
11
|
get instrument(): string;
|
|
11
12
|
get instruments(): import("../../../helpers/instruments").InstrumentId[];
|
|
12
13
|
get role(): GroupPlayerRole;
|
|
@@ -17,6 +17,9 @@ class UserGroup extends basic_1.default {
|
|
|
17
17
|
get mainInstrument() {
|
|
18
18
|
return this.data.mainInstrument;
|
|
19
19
|
}
|
|
20
|
+
get permissions() {
|
|
21
|
+
return this.data.permissions || [];
|
|
22
|
+
}
|
|
20
23
|
get instrument() {
|
|
21
24
|
const translation = (0, lang_1.getTranslation)(`instruments.${this.mainInstrument}`, this.lang);
|
|
22
25
|
return translation || this.mainInstrument;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Timestamp } from '@google-cloud/firestore';
|
|
2
2
|
import { InstrumentId } from '../../../helpers/instruments';
|
|
3
3
|
import { GroupPlayerRole } from '../../Group/Player/types';
|
|
4
|
-
import { GroupBasicData } from '../../Group/types';
|
|
4
|
+
import { AdminPermissions, GroupBasicData } from '../../Group/types';
|
|
5
5
|
export interface UserGroupData extends GroupBasicData {
|
|
6
6
|
mainInstrument: InstrumentId;
|
|
7
7
|
instruments: InstrumentId[];
|
|
8
8
|
role: GroupPlayerRole;
|
|
9
9
|
joinedAt: Timestamp;
|
|
10
|
+
permissions: AdminPermissions[];
|
|
10
11
|
order: number;
|
|
11
12
|
}
|