@@ -35,11 +35,11 @@ service cloud.firestore {
35
35
36
36
// For Share Codes Collection
37
37
match / shared_codes/ {sharedCodeId } {
38
- allow read : if isAuthorized ();
38
+ allow read : if isAuthorized ();
39
39
40
- allow create : if isUserPartOfGroup (request .resource.data.group_id );
40
+ allow create : if isUserPartOfGroup (request .resource.data.group_id );
41
41
42
- allow delete : if isUserPartOfGroup (resource .data.group_id );
42
+ allow delete : if isUserPartOfGroup (resource .data.group_id );
43
43
}
44
44
45
45
// For Groups Collection
@@ -48,22 +48,22 @@ service cloud.firestore {
48
48
49
49
allow create : if isAuthorized () && isCurrentUser (request .resource.data.created_by );
50
50
51
- allow update : if isAuthorized () && ( resource .data.members .hasAny ([ request .auth.uid ]) ||
52
- ( ! resource .data.members .hasAny ([request .auth.uid ]) &&
53
- request .resource.data .diff ( resource .data ) .affectedKeys () .hasOnly ([ " members " ])))
54
- || request .resource.data .keys () .hasAny ([ " updated_at " , " updated_by " ]
55
- );
51
+ allow update : if isAuthorized () &&
52
+ ( resource .data.members .hasAny ([request .auth.uid ]) ||
53
+ ( ! resource .data.members .hasAny ([ request .auth.uid ]) &&
54
+ request .resource.data .diff ( resource .data ) .affectedKeys () .hasOnly ([ " members " ]))) ||
55
+ request .resource.data .keys () .hasAny ([ " updated_at " , " updated_by " ] );
56
56
57
57
allow delete : if isAuthorized () &&
58
- resource.data.members .hasAny ([request .auth.uid ]);
58
+ resource.data.members .hasAny ([request .auth.uid ]);
59
59
}
60
60
61
61
// For Expenses Collection
62
62
match / groups/ {groupId }/ expenses/ {expenseId } {
63
63
allow read : if isAuthorized ();
64
64
65
65
allow create : if isCurrentUser (request .resource.data.added_by ) &&
66
- isUserPartOfGroup (groupId );
66
+ isUserPartOfGroup (groupId );
67
67
68
68
allow update : if isUserPartOfGroup (groupId );
69
69
@@ -72,7 +72,7 @@ request.resource.data.diff(resource.data).affectedKeys().hasOnly(["members"])))
72
72
73
73
// For Transactions Collection
74
74
match / groups/ {groupId }/ transactions/ {transactionId } {
75
- allow read : if isAuthorized ();
75
+ allow read : if isAuthorized ();
76
76
77
77
allow create : if isUserPartOfGroup (groupId ) &&
78
78
isMemberPartOfGroup (groupId , request .resource.data.payer_id ) &&
@@ -85,15 +85,22 @@ request.resource.data.diff(resource.data).affectedKeys().hasOnly(["members"])))
85
85
allow delete : if isUserPartOfGroup (groupId );
86
86
}
87
87
88
+ // For Feedback Collection
89
+ match / feedbacks/ {feedbackId } {
90
+ allow create : if isAuthorized ();
91
+
92
+ allow read : if isAuthorized ();
93
+ }
94
+
88
95
// Use for sub-collection as it'll not have parent's data
89
96
function isUserPartOfGroup (groupId ) {
90
97
let memberIds = get (/ databases/ $(database )/ documents/ groups/ $(groupId )).data.members ;
91
- return isAuthorized () && memberIds.hasAny ([request .auth.uid ]);
98
+ return isAuthorized () && memberIds.hasAny ([request .auth.uid ]);
92
99
}
93
100
94
101
function isMemberPartOfGroup (groupId , memberId ) {
95
102
let memberIds = get (/ databases/ $(database )/ documents/ groups/ $(groupId )).data.members ;
96
103
return isAuthorized () && memberIds.hasAny ([memberId ]);
97
104
}
98
105
}
99
- }
106
+ }
0 commit comments