diff --git a/.firebase/hosting.YnVpbGQ.cache b/.firebase/hosting.YnVpbGQ.cache index 854fe92..87b0915 100644 --- a/.firebase/hosting.YnVpbGQ.cache +++ b/.firebase/hosting.YnVpbGQ.cache @@ -1,22 +1,22 @@ -404.html,1629233942870,05cbc6f94d7a69ce2e29646eab13be2c884e61ba93e3094df5028866876d18b3 -asset-manifest.json,1629233976328,c7179b5bfcb95c2c470d6f0a2150e5c4f00542e220f08d3f7e910b88bec175bd -favicon.ico,1629233942872,88d95810cc2dc4efa431b6dfa9b37508377e47d231f62222dbace211bb4dcdbb -index.html,1629233976325,e7f69adfd17c32cfd00593fff51a80818ab64ed374a6374d2613b5b0fc4001da -logo192.png,1629233942873,381565ec091b52e832ba9af9c616356045f34060392336c6bb97ee1cfca28855 -logo512.png,1629233942875,74bceb9257e64f6d2400e893a8e73862c4b416cce8df208e550aad6c77eb4f35 -manifest.json,1629233942876,d31cfaeb0455760abfe9520d9b39d82b2d497d98be5edc9ba3c66f068f3d8bfd -precache-manifest.211772ddc4658e0e4fd4b11ddb9466ef.js,1629233976325,175fa0198b4efcaaf03b4900b8f03abf800f146de4bd01d2d3015aece36a9d77 -robots.txt,1629233942876,391d14b3c2f8c9143a27a28c7399585142228d4d1bdbe2c87ac946de411fa9a2 -service-worker.js,1629233976325,0aa1c4ce4fe5ca21f89013a941f25061c800967630faeee296866dffa8569902 -static/css/main.16c88c15.chunk.css,1629233976338,515079d118fc3c28ecaffd345d4036e23e362a7150f044c190641771136dbbdf -static/css/main.16c88c15.chunk.css.map,1629233976338,11d0b405641fcff6529f29247ed3e4d8bf3396b05bbd18de75f6a0a20659da6a -static/js/2.199e9667.chunk.js,1629233976337,444474556eb3e90096c473c68a3de19d39270067e586413026f7913fe365dad1 -static/js/2.199e9667.chunk.js.LICENSE.txt,1629233976338,0e8fade25b9c21446d289d15a52f906c0ae67b752b15924bc72a53eee09ef23e -static/js/2.199e9667.chunk.js.map,1629233976338,0481d6f875ef961978b89862600b40d11fdb15c549b7a21fadf363c73959d7fa -static/js/main.6eadff00.chunk.js,1629233976338,9b74ef33101770656ca6a3130cba1f32a9d8f1d3f752fb90b26dd4240e05d44f -static/js/main.6eadff00.chunk.js.map,1629233976338,ffa087263fa1872301540a7f5f7caaf99a1be5122f0bdd18e6754da4be607437 -static/js/runtime-main.02219450.js,1629233976338,359373e1499de6910281b3bfbb05fbac89b4d6cfa716b90557fcc0dcba998779 -static/js/runtime-main.02219450.js.map,1629233976337,bb661e4828d4d8401bc5641f85466564eb8f9685fb95e9fb45c5b83e86f98fe7 -static/media/dancing-sandwich.b532a1d6.gif,1629233976338,b0ad9886de1a3c9a3e7d4b3fcd6fa229aedc92a436b9e8ca6e8bca81e6fe9079 -static/media/loading.ff925b96.svg,1629233976337,15e27949298453595c1082852897501d64cb76b303dade711376da56545731db -static/media/logo.49efa2af.svg,1629233976326,91987effb347ec302e4537271c42a8f564c71fa5e786d73b9afb584a16e2a0f2 +404.html,1629423381689,05cbc6f94d7a69ce2e29646eab13be2c884e61ba93e3094df5028866876d18b3 +asset-manifest.json,1629423396125,29584144cf137d7096aad5de4ef698df3472a59a42805da3ebcf0336e0420757 +favicon.ico,1629423381690,88d95810cc2dc4efa431b6dfa9b37508377e47d231f62222dbace211bb4dcdbb +index.html,1629423396113,15c99f9da9d3d90d93e1de251ff9c0024b60824365be79b72eb3d91c218c3cb4 +logo192.png,1629423381691,381565ec091b52e832ba9af9c616356045f34060392336c6bb97ee1cfca28855 +logo512.png,1629423381691,74bceb9257e64f6d2400e893a8e73862c4b416cce8df208e550aad6c77eb4f35 +manifest.json,1629423381692,d31cfaeb0455760abfe9520d9b39d82b2d497d98be5edc9ba3c66f068f3d8bfd +precache-manifest.8404129f39743411ffacea12461f8d2a.js,1629423396113,0bb822283ddf589661ee6a7f7e68c2dc5a279fc13b97d5bec2fa91509f308aa4 +robots.txt,1629423381693,391d14b3c2f8c9143a27a28c7399585142228d4d1bdbe2c87ac946de411fa9a2 +service-worker.js,1629423396113,25cc01cec9ff5391e7377bd43402690ab8b5f0422c6d6cc806aeac84ca95117d +static/css/main.fc754b00.chunk.css,1629423396125,4f45a9b7fcc1d2287267ad546bbb54e97a85e3a401da66888020955f2aafd85c +static/css/main.fc754b00.chunk.css.map,1629423396123,6985e3c97310027b5634b17eba83f3e156288d243ccd611665cbceca86e21e7c +static/js/2.56ef225e.chunk.js,1629423396124,aaeff6f087d12087c0b4aee0561e3d0e4f1239292a588ebdd13eedf5723423c5 +static/js/2.56ef225e.chunk.js.LICENSE.txt,1629423396123,12a365b180d105e5c476bbd3778068e5442eeb253de67304832e80744b7ffc25 +static/js/2.56ef225e.chunk.js.map,1629423396124,6dae72db782a01c5169cb868d88cb00dad46aed3baa3c17e24694fdf35ea2fb0 +static/js/main.89fe4b90.chunk.js,1629423396122,e020a38a08d00ee144a54fc9c23cfc1ef59994ae761c13d0fe750d26caf94e5d +static/js/main.89fe4b90.chunk.js.map,1629423396124,37259f9f31886cd27bcb001c7c3f774e1ea155d86c42a716293962c96cece380 +static/js/runtime-main.02219450.js,1629423396123,359373e1499de6910281b3bfbb05fbac89b4d6cfa716b90557fcc0dcba998779 +static/js/runtime-main.02219450.js.map,1629423396124,bb661e4828d4d8401bc5641f85466564eb8f9685fb95e9fb45c5b83e86f98fe7 +static/media/dancing-sandwich.b532a1d6.gif,1629423396124,b0ad9886de1a3c9a3e7d4b3fcd6fa229aedc92a436b9e8ca6e8bca81e6fe9079 +static/media/loading.ff925b96.svg,1629423396124,15e27949298453595c1082852897501d64cb76b303dade711376da56545731db +static/media/logo.49efa2af.svg,1629423396114,91987effb347ec302e4537271c42a8f564c71fa5e786d73b9afb584a16e2a0f2 diff --git a/functions/index.js b/functions/index.js index bbefe8e..a30d491 100644 --- a/functions/index.js +++ b/functions/index.js @@ -153,14 +153,24 @@ exports.deleteUsers = functions.https.onCall(async (data, context) => { return { errors: deleteUsersResult.errors, uneditableUids }; }); +const listUsers = async (nextPageToken, users = []) => { + const listUsersResult = await admin.auth().listUsers(1000, nextPageToken); + const newUsers = [...users, ...listUsersResult.users]; + if (!listUsersResult.pageToken) { + return newUsers; + } else { + // List next page if there are more than 1000 users + return listUsers(listUsersResult.pageToken, newUsers); + } +} + exports.listAllUsers = functions.https.onCall(async (data, context) => { const domain = data.domain; await checkAuth(context.auth, domain); - // Assume that there are no more than 1000 users - let listUsersResult = await admin.auth().listUsers(1000).catch(throwError); + let listUsersResult = await listUsers().catch(throwError); let userDomains = await getDomains(); let users = {}; - for (let user of listUsersResult.users) { + for (let user of listUsersResult) { let userDomain = userDomains[user.uid]; if (userDomain?.includes(domain)) { users[user.uid] = { email: user.email }; diff --git a/functions/serviceAccountKey.json b/functions/serviceAccountKey.json index 0409e67..552a0ce 100644 --- a/functions/serviceAccountKey.json +++ b/functions/serviceAccountKey.json @@ -1,8 +1,8 @@ { "type": "service_account", "project_id": "simplesubs-testing", - "private_key_id": "a88bd3c32b96a047fb39bb28421410e8db4f4e78", - "private_key": "", + "private_key_id": "a7d1888861c9eae96212d90e096790f1d4df120e", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDb+RRckINkuDFz\nTM/w88PBSylUqxKPz6Yt/JajHTX9XMB7zK9FtV3R0ZXOH16so4y4XiFPcT4S5uxS\nj8+II/TgcxJXZsCIompM+bC86hf8kcrmPczJymbi9IShXbo+eAyuExJ3wyzyY+Ma\nYj1xnqRq2dn9Idrik+6f/+XtdXkBlnJN7rED/H3f5r6eZLrWCPjmCIu+PBq6FCO4\nuWmmXmnSfNZXn6rXuyrMHGKYR7tchd4Pzl3NcspnDyJr67eqCuqpchZDqZVXtJ3o\n0r4PSy6yfHZWTRQwEzI+f5+U57PQkWZm5CtoyBE/WdOAtOuvEoCcRvga1y86dRJk\npxbgDbXvAgMBAAECggEAIJ+KoQW/rtbQYqiwKCyGyipy+T8b1B84JpbQ4mUJJke0\ntkePcPeqb9006epmGJVy3776ErWZPqVnxADXBvpKLWVzgWnYQQtRV5QqXYIcR5V5\nsXbV4dF2O8+GwgXMAsq8Gq7ybLeR+WrN+hI6yZh9Cum/NhboxvSojasedv6WkSDv\n9BFNchHaWGElOuqLLlZtiqC5YGUzWZ8D5/UU7arp3z7o4SXc+VP0FXR+C4LKbibT\nrShThzRqG97i+QMni5v+Q9UoE9SwN66S9D2acFpbeUb8SWy+a7qW0RhkzQQQHaxQ\nzr7/gSPdLuZjSdBs4Tvu9I8FwEsVhvmp84gLB6mC+QKBgQDu97Ie6UgoUZ5WnVfb\nA5ChgV6T1mBrJuG9cvZaCNRJO0X2kZHQu2vg0zgEiuyrGQTolWg3/pSwVz0EXPCI\nCkr6Og1dRH/aAd9KpuPTTywPdWs7U+Mx8JOoSOubki9Rbkc/nJUsypB6F1neVNTu\njOdmHPPXn+bBISzmUjWpzHe+BwKBgQDrpszeFPsl9/ewKFqO3BtyliklKnDL6DV6\n/RtP6j4IkMRgRBeRW5cyOu9CLCZtTplJjU9pk7ZPDEdADSkUctdRdW1Weg2I6b6N\nP0+g261lSHW82VMDOZW6Z5fj5JDfZRVXvUNHyJmJM/FO8R7heTkY+6u48n7PJ9r8\nkJsohjzO2QKBgAqw4jMn1KaZIDBX0bpmqm3PT9/lU2L31lmXbxYQFw8/q52gXZmt\nCOKCEJuDa5sr/2A4bvUyWoyZGo27ardrXndbaYWmruGd+9NnLAIkJKB8bFO3KQ7u\n6Gw69u961ssZ1+4sny/l0BjmOosL2IrjmuainPYknTo+tbeILgZus1y5AoGBAI25\ngKbkKXPZYW7hpi0bNarBordGghYwbtGsHdv/PhW6s1BOQ3pZgmJkTXcXxHii98/j\nm+ocO13pPYTJJXa15seH/x0uRKueIMskU4ij9fHfFWhhr+pVnLZCDXizA2pHigF9\nw1QN0kFRKwTWQUNLu8pJuip+NUPzbWHOunIx4appAoGAGJf2qDfDSOwLiH6t2Wts\nqlf+ba+uWcM6sYu5ecA3JmiZqOVim+rl0DQrUm4/vW2arBZE70jBWrxf+weC7wxA\nDAWnGundl9MfERB2DU9miIEu2HTxPxcYNwepC/VaBWPKfc0AtTkDc40VzN7T5jdK\nUv/euyiyoEiWc9aBzVvLXVQ=\n-----END PRIVATE KEY-----\n", "client_email": "simplesubs-testing@appspot.gserviceaccount.com", "client_id": "100782168437093809848", "auth_uri": "https://accounts.google.com/o/oauth2/auth", diff --git a/src/redux/Actions.js b/src/redux/Actions.js index acb5870..3a3419e 100644 --- a/src/redux/Actions.js +++ b/src/redux/Actions.js @@ -454,7 +454,7 @@ export function authListener(dispatch) { export function userDataListener(dispatch, domain) { const uid = auth.currentUser?.uid; - if (!uid) return; + if (!uid || !domain) return; return domainData(domain).collection("userData").doc(uid) .onSnapshot((doc) => { dispatch(setUserData({