mirror of
https://gitlab.com/MrFry/qmining-page
synced 2025-04-01 20:23:44 +02:00
pw request refactor
This commit is contained in:
parent
5c430ac5f9
commit
b512e65abc
2 changed files with 106 additions and 89 deletions
|
@ -7,41 +7,23 @@ import Sleep from '../components/sleep'
|
||||||
import styles from './pwRequest.module.css'
|
import styles from './pwRequest.module.css'
|
||||||
import constants from '../constants.json'
|
import constants from '../constants.json'
|
||||||
|
|
||||||
export default function PwRequest() {
|
function fetchAvailablePWS() {
|
||||||
const [result, setResult] = useState([])
|
return new Promise((resolve) => {
|
||||||
const [remaining, setRemaining] = useState('...')
|
|
||||||
const [requestedPWS, setRequestedPWS] = useState('...')
|
|
||||||
const [createDate, setCreateDate] = useState('...')
|
|
||||||
|
|
||||||
const [addPwPerDay, setAddPwPerDay] = useState('...')
|
|
||||||
const [daysAfterUserGetsPWs, setDaysAfterUserGetsPWs] = useState('...')
|
|
||||||
const [maxPWCount, setMaxPWCount] = useState('...')
|
|
||||||
const [addPWCount, setAddPWCount] = useState('...')
|
|
||||||
const [dayDiff, setDayDiff] = useState('...')
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
console.info('Fetching avaible pws')
|
|
||||||
fetch(`${constants.apiUrl}avaiblePWS`, {
|
fetch(`${constants.apiUrl}avaiblePWS`, {
|
||||||
credentials: 'include',
|
credentials: 'include',
|
||||||
})
|
})
|
||||||
.then((resp) => {
|
.then((resp) => {
|
||||||
return resp.json()
|
return resp.json()
|
||||||
})
|
})
|
||||||
.then((data) => {
|
.then((res) => {
|
||||||
setRemaining(data.avaiblePWS)
|
resolve(res)
|
||||||
setCreateDate(data.userCreated)
|
|
||||||
setRequestedPWS(data.requestedPWS)
|
|
||||||
|
|
||||||
setAddPwPerDay(data.addPWPerDay)
|
|
||||||
setAddPWCount(data.addPWCount)
|
|
||||||
setDaysAfterUserGetsPWs(data.daysAfterUserGetsPWs)
|
|
||||||
setMaxPWCount(data.maxPWCount)
|
|
||||||
setDayDiff(data.dayDiff)
|
|
||||||
})
|
})
|
||||||
}, [])
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const handleSubmit = async () => {
|
function requestPw() {
|
||||||
const rawResponse = await fetch(constants.apiUrl + 'getpw', {
|
return new Promise((resolve) => {
|
||||||
|
fetch(constants.apiUrl + 'getpw', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
credentials: 'include',
|
credentials: 'include',
|
||||||
headers: {
|
headers: {
|
||||||
|
@ -50,33 +32,47 @@ export default function PwRequest() {
|
||||||
},
|
},
|
||||||
body: JSON.stringify({}),
|
body: JSON.stringify({}),
|
||||||
})
|
})
|
||||||
try {
|
.then((res) => {
|
||||||
rawResponse
|
return res.json()
|
||||||
.json()
|
})
|
||||||
.then((resp) => {
|
.then((res) => {
|
||||||
if (resp.result === 'success') {
|
resolve(res)
|
||||||
setResult([...result, resp.pw])
|
})
|
||||||
setRemaining(resp.remaining)
|
})
|
||||||
setRequestedPWS(resp.requestedPWS)
|
}
|
||||||
} else if (resp.result === 'nouser') {
|
|
||||||
setResult(['Nem vagy bejelentkezve!']) // this should never happpen
|
export default function PwRequest({ globalData }) {
|
||||||
} else {
|
const userId = globalData.userId || '...'
|
||||||
setResult([
|
const [result, setResult] = useState([])
|
||||||
...result,
|
const [data, setData] = useState({
|
||||||
'Jelszó kérési lehetőségeid elfogytak, nézz vissza később',
|
userCreated: '...',
|
||||||
])
|
availablePWS: '...',
|
||||||
setRemaining(0)
|
requestedPWS: '...',
|
||||||
}
|
maxPWCount: '...',
|
||||||
})
|
daysAfterUserGetsPWs: '...',
|
||||||
.catch((e) => {
|
addPWPerDay: '...',
|
||||||
setResult([...result, 'Szerver oldali hiba! :('])
|
addPWCount: '...',
|
||||||
console.error(e)
|
dayDiff: '...',
|
||||||
})
|
userCount: '...',
|
||||||
} catch (e) {
|
})
|
||||||
setResult([...result, 'Szerver oldali hiba! :('])
|
|
||||||
console.error(e)
|
const {
|
||||||
}
|
userCreated,
|
||||||
}
|
availablePWS,
|
||||||
|
requestedPWS,
|
||||||
|
maxPWCount,
|
||||||
|
daysAfterUserGetsPWs,
|
||||||
|
addPWPerDay,
|
||||||
|
addPWCount,
|
||||||
|
dayDiff,
|
||||||
|
userCount,
|
||||||
|
} = data
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
fetchAvailablePWS().then((data) => {
|
||||||
|
setData(data)
|
||||||
|
})
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
// TODO: a generált jelszó modal-on való megjelenítésének kivitelezése.
|
// TODO: a generált jelszó modal-on való megjelenítésének kivitelezése.
|
||||||
|
@ -93,16 +89,9 @@ export default function PwRequest() {
|
||||||
<div id="form">
|
<div id="form">
|
||||||
<div className={styles.text}>
|
<div className={styles.text}>
|
||||||
<p className={styles.descrip}>
|
<p className={styles.descrip}>
|
||||||
Ezen az oldalon lehetőséged van lekérni jelszavakat, hogy új
|
Minden felhasználó egyedi jelszót kap. Ne használjatok többen egy
|
||||||
felhasználókat hívhass meg az oldalra, vagy elfelejtett jelszavadat
|
jelszót, mert egy idő után kidob a rendszer. A jelszavakról bővebben
|
||||||
pótold, amennyiben még be vagy jelentkezve a régivel. (Konkrét
|
a jelszavakról bővebben a{' '}
|
||||||
elfelejtett jelszó funkció még nincsen)
|
|
||||||
<br />
|
|
||||||
Minden felhasználó saját és különböző jelszót kap. Inkább generálj
|
|
||||||
egyet és add oda másnak, mint hogy közösen használjatok egyet, mert
|
|
||||||
egyszerre, egy felhasználó csak egy helyen, egy eszközön lehet
|
|
||||||
belépve, mindenhol máshol automatikusan kijelentkeztetésre kerül. A
|
|
||||||
jelszavakról bővebben a{' '}
|
|
||||||
<Link href="/faq">
|
<Link href="/faq">
|
||||||
<a>GYIK</a>
|
<a>GYIK</a>
|
||||||
</Link>
|
</Link>
|
||||||
|
@ -110,41 +99,70 @@ export default function PwRequest() {
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.text}>
|
<div className={styles.text}>
|
||||||
Az új felhasználóknak
|
Jelszó kérési lehetőségeit minden
|
||||||
<span>{' ' + daysAfterUserGetsPWs + ' '}</span>
|
<span>{' ' + addPWPerDay + '. '}</span>
|
||||||
napot kell várniuk, míg jelszó generálási lehetőséget kapnak.
|
nap a következő logika alapján növekednek:
|
||||||
<br />
|
<ul>
|
||||||
Egy felhasználó egyszerre, egymás után
|
<li>
|
||||||
<span>{' ' + maxPWCount + ' '}</span>
|
Ha a felhasználói fiókod fiatalabb mint
|
||||||
jelszót generálhat. Összességében korlátlan mennyiségben kérhetők le
|
<span>{' ' + daysAfterUserGetsPWs + '. '}</span>
|
||||||
jelszavak, de
|
nap, akkor nem kapsz új lehetőséget.
|
||||||
<span>{' ' + maxPWCount + ' '}</span>db után el kell telnie{' '}
|
</li>
|
||||||
<span>{' ' + addPwPerDay + ' '}</span> napnak, hogy ismét jelszót
|
<li>
|
||||||
generálhass.
|
Ha több mint
|
||||||
<br />
|
<span>{' ' + maxPWCount + ' '}</span>
|
||||||
Ebből eddig
|
jelszó kérési lehetőséged van, akkor nem nő ezek száma.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Ha az előző kettő nem zárja ki, akkor jelszó kérési lehetőségeid
|
||||||
|
<span>{' ' + addPWCount + ' '}</span>
|
||||||
|
darabbal növekednek.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
Eddig
|
||||||
<span>{' ' + requestedPWS + ' '}</span>
|
<span>{' ' + requestedPWS + ' '}</span>
|
||||||
lehetőséget használtál fel, tehát még{' '}
|
jelszót kértél. Jelenleg
|
||||||
<span>{remaining - requestedPWS}</span> db jelszót kérhetsz le,
|
<span>{' ' + (availablePWS - requestedPWS) + ' '}</span>
|
||||||
mielőtt elérnéd a <span>{' ' + maxPWCount + ' '}</span> darabos
|
db jelszót kérhetsz.
|
||||||
kvótát.<br />
|
<br />A jelenleg bejelentkezett felhasználó (
|
||||||
<br /> A jelenleg bejelentkezett felhasználó létrehozva:
|
<span>{' #' + userId + ' '}</span>)<span>{' ' + dayDiff + ' '}</span>
|
||||||
<span>{' ' + dayDiff}</span> napja,<span>{' ' + createDate}</span>
|
napos,{' '}
|
||||||
-kor.
|
<span>
|
||||||
<br />
|
{userCreated ? new Date(userCreated).toLocaleString() : '...'}
|
||||||
|
</span>
|
||||||
|
-kor lett létrehozva.
|
||||||
<br />
|
<br />
|
||||||
|
Az oldalnak eddig
|
||||||
|
<span>{' ' + userCount + ' '}</span>
|
||||||
|
felhasználója van
|
||||||
</div>
|
</div>
|
||||||
<center>
|
<center>
|
||||||
<div className={`buttonContainer ${styles.pwButton}`}>
|
<div className={`buttonContainer ${styles.pwButton}`}>
|
||||||
<div onClick={handleSubmit}>Jelszó kérése</div>
|
<div
|
||||||
|
onClick={() => {
|
||||||
|
requestPw().then((res) => {
|
||||||
|
setData(res)
|
||||||
|
if (res.success) {
|
||||||
|
setResult([...result, res.pw])
|
||||||
|
} else {
|
||||||
|
setResult([
|
||||||
|
...result,
|
||||||
|
'Jelszó kérési lehetőségeid elfogytak, nézz vissza később',
|
||||||
|
])
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Jelszó kérése
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</center>
|
</center>
|
||||||
{result ? (
|
{result ? (
|
||||||
<div className={styles.pwContainer}>
|
<div className={styles.pwContainer}>
|
||||||
{result.map((r, i) => {
|
{result.map((res, i) => {
|
||||||
return (
|
return (
|
||||||
<div key={i} className={styles.pw}>
|
<div key={i} className={styles.pw}>
|
||||||
{i + 1}.: {r}
|
{i + 1}.: {res}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
.text {
|
.text {
|
||||||
text-align: center;
|
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue