added userdata
This commit is contained in:
parent
da0619b016
commit
d5e324978c
@ -2,6 +2,7 @@ const express = require('express');
|
|||||||
const cors = require('cors');
|
const cors = require('cors');
|
||||||
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
|
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
|
||||||
const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
|
const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
|
||||||
|
const { verifyIdToken } = require('firebase-admin/auth')
|
||||||
|
|
||||||
const serviceAccount = require('./firebase.json');
|
const serviceAccount = require('./firebase.json');
|
||||||
|
|
||||||
@ -48,6 +49,35 @@ app.post('/checkrelatiecode', async (req, res) => {
|
|||||||
|
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return res.status(500).send({ error: e })
|
return res.status(500).send({ code: 'error', error: e })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
app.post('/getrelatiecodes', async (req, res) => {
|
||||||
|
const { email } = req.body;
|
||||||
|
|
||||||
|
if (!email) return res.status(400).send({ code: 'no-email'})
|
||||||
|
|
||||||
|
try {
|
||||||
|
const ledenlijstRef = db.collection('ledenlijst')
|
||||||
|
|
||||||
|
const snapshot = await ledenlijstRef.where("email", "array-contains", email).get()
|
||||||
|
|
||||||
|
if (snapshot.empty) {
|
||||||
|
res.status(400).send({ code: 'no-relatiecodes'})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let relatiecodes = [];
|
||||||
|
|
||||||
|
snapshot.forEach(doc => {
|
||||||
|
relatiecodes.push(doc.id)
|
||||||
|
});
|
||||||
|
|
||||||
|
res.status(200).send({ code: 'success', relatiecodes: relatiecodes })
|
||||||
|
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
return res.status(500).send({ code: 'error', error: e })
|
||||||
}
|
}
|
||||||
})
|
})
|
@ -17,7 +17,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { doc, getFirestore, serverTimestamp, writeBatch, collection, getDocs } from "firebase/firestore";
|
import { doc, getFirestore, serverTimestamp, writeBatch, collection, getDoc } from "firebase/firestore";
|
||||||
import { getAuth, onAuthStateChanged, signInWithEmailAndPassword } from "firebase/auth";
|
import { getAuth, onAuthStateChanged, signInWithEmailAndPassword } from "firebase/auth";
|
||||||
|
|
||||||
const db = getFirestore()
|
const db = getFirestore()
|
||||||
@ -27,25 +27,52 @@ const isAuthenticated = ref(false)
|
|||||||
const user = ref('frikandel')
|
const user = ref('frikandel')
|
||||||
const auth = ref(null)
|
const auth = ref(null)
|
||||||
const userLoaded = ref(false)
|
const userLoaded = ref(false)
|
||||||
|
const userData = ref(null)
|
||||||
|
const userPersons = ref([])
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
auth.value = getAuth()
|
auth.value = getAuth()
|
||||||
|
|
||||||
onAuthStateChanged(auth.value, (usr) => {
|
onAuthStateChanged(auth.value, async (usr) => {
|
||||||
if (usr) {
|
if (usr) {
|
||||||
isAuthenticated.value = true
|
|
||||||
user.value = usr
|
user.value = usr
|
||||||
|
|
||||||
|
let docRef = doc(db, "users", user.value.uid);
|
||||||
|
let docSnap = await getDoc(docRef);
|
||||||
|
|
||||||
|
if (docSnap.exists()) {
|
||||||
|
const data = docSnap.data()
|
||||||
|
userData.value = data
|
||||||
|
getPersons(userData.value.relatiecodes)
|
||||||
|
}
|
||||||
|
|
||||||
|
isAuthenticated.value = true
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
isAuthenticated.value = false
|
isAuthenticated.value = false
|
||||||
user.value = null
|
user.value = null
|
||||||
|
userData.value = null
|
||||||
|
userPersons.value = []
|
||||||
}
|
}
|
||||||
|
|
||||||
userLoaded.value = true
|
userLoaded.value = true
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const getPersons = async (persons) => {
|
||||||
|
userPersons.value = [];
|
||||||
|
|
||||||
|
for (let i = 0; i < persons.length; i++) {
|
||||||
|
const docRef = doc(db, "ledenlijst", persons[i]);
|
||||||
|
const docSnap = await getDoc(docRef);
|
||||||
|
|
||||||
|
if (docSnap.exists()) {
|
||||||
|
userPersons.value.push(docSnap.data())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const ledenlijst = ref([])
|
const ledenlijst = ref([])
|
||||||
|
|
||||||
|
provide('firebase', { db, ledenlijst, isAuthenticated, user, userData, userPersons, auth })
|
||||||
provide('firebase', { db, ledenlijst, isAuthenticated, user, auth })
|
|
||||||
</script>
|
</script>
|
@ -43,8 +43,10 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { useToast } from 'vue-toastification'
|
import { useToast } from 'vue-toastification'
|
||||||
import { createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";
|
import { createUserWithEmailAndPassword, signInWithEmailAndPassword } from "firebase/auth";
|
||||||
|
import { doc, setDoc } from "firebase/firestore";
|
||||||
|
|
||||||
const { auth } = inject('firebase')
|
|
||||||
|
const { auth, db } = inject('firebase')
|
||||||
|
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
|
|
||||||
@ -76,7 +78,7 @@ const submitLoginForm = () => {
|
|||||||
Authorization: 'Basic WGVvdmFseXRlOmtNKjhuRXMzNTchalJlXm1KYnZrRSFOIw==',
|
Authorization: 'Basic WGVvdmFseXRlOmtNKjhuRXMzNTchalJlXm1KYnZrRSFOIw==',
|
||||||
'content-type': 'application/json'
|
'content-type': 'application/json'
|
||||||
},
|
},
|
||||||
body: JSON.stringify({ email: form.value.email, relatiecode: form.value.password })
|
body: JSON.stringify({ email: form.value.email, relatiecode: form.value.password.toUpperCase() })
|
||||||
}).then(response => response.json())
|
}).then(response => response.json())
|
||||||
.then(response => {
|
.then(response => {
|
||||||
disableButtons.value = false
|
disableButtons.value = false
|
||||||
@ -87,8 +89,12 @@ const submitLoginForm = () => {
|
|||||||
disableButtons.value = false
|
disableButtons.value = false
|
||||||
console.log(err)
|
console.log(err)
|
||||||
|
|
||||||
toast.error('Error while checking relatiecode')
|
toast.error('Error met het controleren van relatiecode')
|
||||||
});
|
});
|
||||||
|
} else if (error.code === 'auth/wrong-password') {
|
||||||
|
toast.error('Verkeerde wachtwoord')
|
||||||
|
} else {
|
||||||
|
toast.error('Error met inloggen')
|
||||||
}
|
}
|
||||||
|
|
||||||
disableButtons.value = false
|
disableButtons.value = false
|
||||||
@ -103,13 +109,44 @@ const submitCreateForm = () => {
|
|||||||
disableButtons.value = true
|
disableButtons.value = true
|
||||||
|
|
||||||
createUserWithEmailAndPassword(auth.value, form.value.email, form.value.newPassword)
|
createUserWithEmailAndPassword(auth.value, form.value.email, form.value.newPassword)
|
||||||
|
.then((userCredential) => {
|
||||||
|
fetch('http://test.xeovalyte.com:7289/getrelatiecodes', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
Authorization: 'Basic WGVvdmFseXRlOmtNKjhuRXMzNTchalJlXm1KYnZrRSFOIw==',
|
||||||
|
'content-type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({ email: form.value.email })
|
||||||
|
}).then(response => response.json())
|
||||||
|
.then(response => {
|
||||||
|
disableButtons.value = false
|
||||||
|
if (response.code === 'error') return toast.error('Error tijdens maken van account')
|
||||||
|
else if (response.code === 'success') {
|
||||||
|
setDoc(doc(db, "users", userCredential.user.uid), {
|
||||||
|
email: form.value.email,
|
||||||
|
relatiecodes: [form.value.password.toUpperCase()],
|
||||||
|
allRelatiecodes: response.relatiecodes,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.relatiecodes.length > 1) {
|
||||||
|
return navigateTo('/settings/config/managerelatiecodes')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
disableButtons.value = false
|
||||||
|
console.log(err)
|
||||||
|
|
||||||
|
toast.error('Error met het controleren van relatiecode')
|
||||||
|
});
|
||||||
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
const errorCode = error.code;
|
const errorCode = error.code;
|
||||||
const errorMessage = error.message;
|
const errorMessage = error.message;
|
||||||
|
|
||||||
console.log(error)
|
console.log(error)
|
||||||
|
|
||||||
toast.error('Error while creating account')
|
toast.error('Error tijdens het maken van account')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
frontend/pages/settings/config/managerelatiecodes.vue
Normal file
12
frontend/pages/settings/config/managerelatiecodes.vue
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
Manage relatiecodes
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
definePageMeta({
|
||||||
|
title: 'Beheer Personen',
|
||||||
|
key: 'back'
|
||||||
|
})
|
||||||
|
</script>
|
Loading…
Reference in New Issue
Block a user