@edgedev/firebase 2.0.35 → 2.0.36
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/package.json +1 -1
- package/src/storage.rules +10 -7
package/package.json
CHANGED
package/src/storage.rules
CHANGED
|
@@ -3,11 +3,14 @@ rules_version = '2';
|
|
|
3
3
|
service firebase.storage {
|
|
4
4
|
match /b/{bucket}/o {
|
|
5
5
|
// Match the file path structure you're using, simulating the Firestore document path structure for permissions.
|
|
6
|
-
function getRolePermission(role,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
function getRolePermission(role, permissionCheck) {
|
|
7
|
+
let permissions = {
|
|
8
|
+
'admin': {'assign': true, 'delete': true, 'read': true, 'write': true},
|
|
9
|
+
'editor': {'assign': false, 'delete': true, 'read': true, 'write': true},
|
|
10
|
+
'user': {'assign': false, 'delete': false, 'read': true, 'write': false},
|
|
11
|
+
'writer': {'assign': false, 'delete': false, 'read': true, 'write': true}
|
|
12
|
+
};
|
|
13
|
+
return permissions[role][permissionCheck];
|
|
11
14
|
}
|
|
12
15
|
function checkPermission(permissionCheck, collectionPath) {
|
|
13
16
|
let user = firestore.get(/databases/(default)/documents/users/$(request.auth.uid)).data;
|
|
@@ -23,7 +26,7 @@ service firebase.storage {
|
|
|
23
26
|
(
|
|
24
27
|
"roles" in user &&
|
|
25
28
|
ruleHelper[collectionPath].permissionCheckPath in user.roles &&
|
|
26
|
-
getRolePermission(user.roles[ruleHelper[collectionPath].permissionCheckPath].role,
|
|
29
|
+
getRolePermission(user.roles[ruleHelper[collectionPath].permissionCheckPath].role, permissionCheck)
|
|
27
30
|
) ||
|
|
28
31
|
(
|
|
29
32
|
"specialPermissions" in user &&
|
|
@@ -43,4 +46,4 @@ service firebase.storage {
|
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
|
-
// #EDGE FIREBASE RULES END
|
|
49
|
+
// #EDGE FIREBASE RULES END
|