Harden Firestore ride ownership and stable identity rules
This commit is contained in:
parent
de516d023e
commit
38dc8bfc14
|
|
@ -28,6 +28,19 @@ service cloud.firestore {
|
|||
]);
|
||||
}
|
||||
|
||||
function validRideCreate(userId, rideId) {
|
||||
return ownsUser(userId)
|
||||
&& request.resource.data.ownerId == userId
|
||||
&& request.resource.data.id == rideId;
|
||||
}
|
||||
|
||||
function validRideUpdate(userId) {
|
||||
return ownsUser(userId)
|
||||
&& resource.data.ownerId == userId
|
||||
&& request.resource.data.ownerId == resource.data.ownerId
|
||||
&& request.resource.data.id == resource.data.id;
|
||||
}
|
||||
|
||||
match /users/{userId} {
|
||||
allow create: if validUserCreate(userId);
|
||||
allow read: if ownsUser(userId);
|
||||
|
|
@ -35,7 +48,10 @@ service cloud.firestore {
|
|||
allow delete: if ownsUser(userId);
|
||||
|
||||
match /rides/{rideId} {
|
||||
allow read, write: if ownsUser(userId);
|
||||
allow create: if validRideCreate(userId, rideId);
|
||||
allow update: if validRideUpdate(userId);
|
||||
allow read, delete: if ownsUser(userId) && resource.data.ownerId == userId;
|
||||
|
||||
match /events/{eventId} {
|
||||
allow read, write: if ownsUser(userId);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue