1.0.5 • Published 1 day ago

@blinkk/root-cms v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
1 day ago

Setting up Firestore

Firestore must be setup as Native Mode and not Datastore Mode

Firestore read/writes will need to be locked down by adding the following to the security rules (in Firebase's Firestore UI):

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }

    match /Projects/{project} {
      allow write:
        if isSignedIn() && userIsAdmin();
      allow read:
        if isSignedIn() && userCanRead();

      match /{collection}/{document=**} {
        allow write:
          if isSignedIn() && userCanWrite();
        allow read:
          if isSignedIn() && userCanRead();
      }

      function isSignedIn() {
        return request.auth != null;
      }

      function getRoles() {
        return get(/databases/$(database)/documents/Projects/$(project)).data.roles;
      }

      function userCanRead() {
        let roles = getRoles();
        let email = request.auth.token.email;
        let domain = '*@' + email.split('@')[1];
        return (roles[email] in ['ADMIN', 'EDITOR', 'VIEWER']) || (roles[domain] in ['ADMIN', 'EDITOR', 'VIEWER']);
      }

      function userCanWrite() {
        let roles = getRoles();
        let email = request.auth.token.email;
        let domain = '*@' + email.split('@')[1];
        return (roles[email] in ['ADMIN', 'EDITOR']) || (roles[domain] in ['ADMIN', 'EDITOR']);
      }

      function userIsAdmin() {
        let roles = getRoles();
        let email = request.auth.token.email;
        let domain = '*@' + email.split('@')[1];
        return (roles[email] == 'ADMIN') || (roles[domain] == 'ADMIN');
      }
    }
  }
}

In Firestore, add a document at Projects/<yourprojectid> with a value of {roles: {"youremail@yourdomain.tld": "ADMIN"}}.

Using Firestore Studio:

  • Under Give the collection an ID, set Collection ID to Projects
  • Under Add its first document set Document ID to your project ID
  • For the first record set Field name to roles with a Field type of map
  • In the map set the new Field name to your e-mail, Field type to string and Field value to ADMIN and save.
1.0.5

1 day ago

1.0.4

5 days ago

1.0.2

1 month ago

1.0.3

1 month ago

1.0.1

1 month ago

1.0.0-rc.43

1 month ago

1.0.0-rc.42

1 month ago

1.0.0-rc.41

1 month ago

1.0.0-rc.40

2 months ago

1.0.0-rc.39

2 months ago

1.0.0-rc.38

2 months ago

1.0.0-rc.37

2 months ago

1.0.0-rc.36

2 months ago

1.0.0-rc.35

2 months ago

1.0.0-rc.34

2 months ago

1.0.0-rc.33

2 months ago

1.0.0-rc.32

2 months ago

1.0.0-rc.31

2 months ago

1.0.0-rc.30

2 months ago

1.0.0-rc.28

3 months ago

1.0.0-rc.27

3 months ago

1.0.0-rc.29

2 months ago

1.0.0-rc.26

3 months ago

1.0.0-rc.25

3 months ago

1.0.0-rc.24

3 months ago

1.0.0-rc.23

4 months ago

1.0.0-rc.22

4 months ago

1.0.0-rc.21

4 months ago

1.0.0-rc.20

4 months ago

1.0.0-rc.19

4 months ago

1.0.0-rc.17

4 months ago

1.0.0-rc.18

4 months ago

1.0.0-rc.16

5 months ago

1.0.0-rc.15

5 months ago

1.0.0-rc.14

5 months ago

1.0.0-rc.13

5 months ago

1.0.0-rc.12

5 months ago

1.0.0-rc.11

5 months ago

1.0.0-rc.10

5 months ago

1.0.0-rc.9

5 months ago

1.0.0-rc.8

5 months ago

1.0.0-beta.64

7 months ago

1.0.0-beta.62

7 months ago

1.0.0-beta.63

7 months ago

1.0.0-beta.60

8 months ago

1.0.0-beta.61

7 months ago

1.0.0-beta.55

8 months ago

1.0.0-beta.56

8 months ago

1.0.0-beta.53

8 months ago

1.0.0-beta.54

8 months ago

1.0.0-beta.51

9 months ago

1.0.0-beta.52

9 months ago

1.0.0-beta.50

9 months ago

1.0.0-beta.59

8 months ago

1.0.0-beta.57

8 months ago

1.0.0-beta.58

8 months ago

1.0.0-beta.48

10 months ago

1.0.0-beta.49

9 months ago

1.0.0-beta.47

10 months ago

1.0.0-rc.7

6 months ago

1.0.0-rc.5

6 months ago

1.0.0-rc.6

6 months ago

1.0.0-rc.3

6 months ago

1.0.0-rc.4

6 months ago

1.0.0-rc.1

7 months ago

1.0.0-rc.2

7 months ago

1.0.0-rc.0

7 months ago

1.0.0-beta.45

11 months ago

1.0.0-beta.46

11 months ago

1.0.0-beta.44

11 months ago

1.0.0-beta.42

11 months ago

1.0.0-beta.43

11 months ago

1.0.0-beta.40

11 months ago

1.0.0-beta.41

11 months ago

1.0.0-beta.39

11 months ago

1.0.0-beta.37

11 months ago

1.0.0-beta.38

11 months ago

1.0.0-beta.28

1 year ago

1.0.0-beta.29

1 year ago

1.0.0-beta.26

1 year ago

1.0.0-beta.27

1 year ago

1.0.0-beta.25

1 year ago

1.0.0-beta.33

12 months ago

1.0.0-beta.34

12 months ago

1.0.0-beta.31

1 year ago

1.0.0-beta.32

12 months ago

1.0.0-beta.30

1 year ago

1.0.0-beta.35

12 months ago

1.0.0-beta.36

12 months ago

1.0.0-beta.22

1 year ago

1.0.0-beta.23

1 year ago

1.0.0-beta.20

1 year ago

1.0.0-beta.21

1 year ago

1.0.0-beta.24

1 year ago

1.0.0-beta.19

1 year ago

1.0.0-beta.17

1 year ago

1.0.0-beta.18

1 year ago

1.0.0-beta.15

1 year ago

1.0.0-beta.16

1 year ago

1.0.0-beta.14

1 year ago

1.0.0-beta.2

1 year ago

1.0.0-beta.3

1 year ago

1.0.0-beta.4

1 year ago

1.0.0-beta.5

1 year ago

1.0.0-beta.0

1 year ago

1.0.0-beta.1

1 year ago

1.0.0-beta.11

1 year ago

1.0.0-beta.12

1 year ago

1.0.0-beta.10

1 year ago

1.0.0-beta.6

1 year ago

1.0.0-beta.7

1 year ago

1.0.0-beta.8

1 year ago

1.0.0-beta.9

1 year ago

1.0.0-alpha.27

1 year ago

1.0.0-alpha.29

1 year ago

1.0.0-alpha.28

1 year ago

1.0.0-beta.13

1 year ago

1.0.0-alpha.21

1 year ago

1.0.0-alpha.26

1 year ago

1.0.0-alpha.23

1 year ago

1.0.0-alpha.22

1 year ago

1.0.0-alpha.25

1 year ago

1.0.0-alpha.24

1 year ago

1.0.0-alpha.20

1 year ago

1.0.0-alpha.19

1 year ago

1.0.0-alpha.18

1 year ago

1.0.0-alpha.17

1 year ago

1.0.0-alpha.16

1 year ago

1.0.0-alpha.15

1 year ago

1.0.0-alpha.14

1 year ago

1.0.0-alpha.13

1 year ago

1.0.0-alpha.12

1 year ago

1.0.0-alpha.11

1 year ago

1.0.0-alpha.10

1 year ago

1.0.0-alpha.9

1 year ago

1.0.0-alpha.8

1 year ago

1.0.0-alpha.7

1 year ago

1.0.0-alpha.6

1 year ago

1.0.0-alpha.5

1 year ago

1.0.0-alpha.4

2 years ago

1.0.0-alpha.3

2 years ago

1.0.0-alpha.2

2 years ago

1.0.0-alpha.1

2 years ago

1.0.0-alpha.0

2 years ago

1.0.1-alpha.0

2 years ago

1.0.0

2 years ago