passwort ändern

This commit is contained in:
2023-02-28 23:46:33 +01:00
parent 0ee583c662
commit f2fa8e46e9
8 changed files with 250 additions and 143 deletions

View File

@ -1,66 +0,0 @@
-- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Erstellungszeit: 17. Dez 2022 um 00:33
-- Server-Version: 10.4.27-MariaDB
-- PHP-Version: 8.1.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `k200835_dog`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `dogs`
--
CREATE TABLE `dogs` (
`id` int(11) NOT NULL,
`email` varchar(255) NOT NULL,
`qr_id` char(31) NOT NULL,
`name` varchar(255) NOT NULL DEFAULT '',
`password` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL DEFAULT '',
`qr_code` varchar(255) DEFAULT NULL,
`picture` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `dogs`
--
ALTER TABLE `dogs`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `index_qr_id` (`qr_id`),
ADD UNIQUE KEY `index_email` (`email`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `dogs`
--
ALTER TABLE `dogs`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -1,76 +0,0 @@
-- phpMyAdmin SQL Dump
-- version 5.1.3
-- https://www.phpmyadmin.net/
--
-- Host: 10.35.232.188:3306
-- Erstellungszeit: 29. Dez 2022 um 20:55
-- Server-Version: 8.0.31
-- PHP-Version: 7.4.32
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `k200835_dog`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `dogs`
--
CREATE TABLE `dogs` (
`id` int NOT NULL,
`email` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL,
`qr_id` char(31) COLLATE utf8mb3_unicode_ci NOT NULL,
`name` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
`password` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL,
`phone` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
`qr_code` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`picture` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
--
-- Daten für Tabelle `dogs`
--
INSERT INTO `dogs` (`id`, `email`, `qr_id`, `name`, `password`, `phone`, `qr_code`, `picture`) VALUES
(4, 'a@q.q', 'r0hhpZ', 'ddddd', '$2y$10$kQWHhEr9m3w5BfqRMN0WauUBI.OaRR86X8lssTlOX5UnMOTdqEKOa', '', NULL, NULL),
(5, 'conny.rankl@web.de', 'm7MdMK', 'Melly', '$2y$10$2WscecdKZv73sl2E1cdg5OKNGpfDzSRyrQeu8ebZIgIiLexztgbHa', '+49 171 7328974', '/m7MdMK/7a0LA4ZlWVXYhPArDRU8.png', '/m7MdMK/eywPirFAyg9jSIvoK4KZ.jpg'),
(11, 'p.para@gmx.de', 'YQiwEB', 'Conny', '$2y$10$/W.2pZLhhxoW7j6M5KcXJ.HWDJBc98fpapTaWm9hxKXYfA5YZiinK', '+49 179 5035966', '/YQiwEB/PbygxRtUBkhQrekdIdER.png', '/YQiwEB/8w0iUcSKM0bvSmC8i6cL.png'),
(12, 'eva-maria-cat@web.de', '17dg43', 'Bonny', '$2y$10$AsTXWioe5pyMNqAPN8DoJuovIkkfZkYci2Z5VG3a9uf545jbCqUta', '+49 171 7923900', '/17dg43/0GH7skrnnzBYUDuIIybR.png', '/17dg43/GmFlF0nh7GU02wNuIFcX.jpg');
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `dogs`
--
ALTER TABLE `dogs`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `index_qr_id` (`qr_id`),
ADD UNIQUE KEY `index_email` (`email`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `dogs`
--
ALTER TABLE `dogs`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

132
docs/k200835_dog.sql Normal file
View File

@ -0,0 +1,132 @@
-- phpMyAdmin SQL Dump
-- version 5.1.3
-- https://www.phpmyadmin.net/
--
-- Host: 10.35.232.188:3306
-- Erstellungszeit: 28. Feb 2023 um 23:17
-- Server-Version: 8.0.32
-- PHP-Version: 7.4.33
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `k200835_dog`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `contact_emails`
--
CREATE TABLE `contact_emails` (
`id` int NOT NULL,
`dogs_id` int NOT NULL,
`from_email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`msg` varchar(1023) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
--
-- Daten für Tabelle `contact_emails`
--
INSERT INTO `contact_emails` (`id`, `dogs_id`, `from_email`, `msg`, `created`) VALUES
(20, 14, 'p.hoppe@gmx.de', 'Jo josef', '2023-02-10 00:23:16'),
(21, 11, 'x@hope-para.de', 'sdsdsdsdsd', '2023-02-20 14:39:52'),
(22, 4, 'p.hoppe@gmx.de', 'sssss', '2023-02-27 11:46:56');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `dogs`
--
CREATE TABLE `dogs` (
`id` int NOT NULL,
`email` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL,
`qr_id` char(31) COLLATE utf8mb3_unicode_ci NOT NULL,
`name` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
`password` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL,
`phone` varchar(255) COLLATE utf8mb3_unicode_ci NOT NULL DEFAULT '',
`qr_width_cm` decimal(5,3) NOT NULL DEFAULT '2.400',
`qr_height_cm` decimal(5,3) NOT NULL DEFAULT '3.700',
`qr_fontsize` smallint NOT NULL DEFAULT '100',
`qr_visible_items` tinyint NOT NULL DEFAULT '7',
`qr_item_sequence` smallint NOT NULL DEFAULT '123',
`qr_code` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`picture` varchar(255) COLLATE utf8mb3_unicode_ci DEFAULT NULL,
`pwtoken` varchar(31) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`pwt_time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
--
-- Daten für Tabelle `dogs`
--
INSERT INTO `dogs` (`id`, `email`, `qr_id`, `name`, `password`, `phone`, `qr_width_cm`, `qr_height_cm`, `qr_fontsize`, `qr_visible_items`, `qr_item_sequence`, `qr_code`, `picture`, `pwtoken`, `pwt_time`) VALUES
(4, 'a@q.q', 'r0hhpZ', 'dddddaa', '$2y$10$kQWHhEr9m3w5BfqRMN0WauUBI.OaRR86X8lssTlOX5UnMOTdqEKOa', '8888888888', '2.400', '3.700', 110, 7, 123, '/r0hhpZ/TvkmuvJPiot9VFI8vVkm.png', '/r0hhpZ/29tpdCSammHXrCKrBxyQ.png', NULL, NULL),
(5, 'conny.rankl@web.de', 'm7MdMK', 'Melly', '$2y$10$2WscecdKZv73sl2E1cdg5OKNGpfDzSRyrQeu8ebZIgIiLexztgbHa', '+49 171 7328974', '2.400', '3.700', 100, 7, 123, '/m7MdMK/A8fd7A4eKBizfwmcKWDZ.png', '/m7MdMK/45kijmZnCxA3SokB1Z8a.jpg', NULL, NULL),
(11, 'p.para@gmx.de', 'YQiwEB', 'Conny', '$2y$10$U5DXObAjyf5TxqVUMGT2euw7v7t2uNCWswSRUUQ6l3oq9Vk44tARe', '+49 179 5035966', '2.400', '3.700', 100, 7, 123, '/YQiwEB/Fi3eVHjUW8grFDh2O1ZV.png', '/YQiwEB/8w0iUcSKM0bvSmC8i6cL.png', NULL, NULL),
(12, 'eva-maria-cat@web.de', '17dg43', 'Bonny', '$2y$10$AsTXWioe5pyMNqAPN8DoJuovIkkfZkYci2Z5VG3a9uf545jbCqUta', '+49 171 7923900', '2.400', '3.700', 100, 7, 123, '/17dg43/0GH7skrnnzBYUDuIIybR.png', '/17dg43/GmFlF0nh7GU02wNuIFcX.jpg', NULL, NULL),
(14, 'x@hope-para.de', 'D4O1aH', 'Josef', '$2y$10$g0FbTtmjX/sK3Uj1owXDrO2vIsYfcVW/bq8EIPfkS9nEd8lZY8fG2', '0123 456789', '2.400', '3.700', 100, 7, 123, '/D4O1aH/Pky1kjndY4rUhU6ZXxvU.png', '/D4O1aH/gW06nnKfS1vlOkxIPxES.png', NULL, NULL),
(15, 'p.hoppe@gmx.de', '4ZYMvA', 'Robert', '$2y$10$Obiy2keQLxA04iFZpiL2fOawbCUQS6Cj9NnHy/GnVdpLbny6zyBli', '89898989', '2.400', '3.700', 100, 7, 123, '/4ZYMvA/s0I5nhHNQJA09BRvXXZO.png', '/4ZYMvA/fidQuIifNGGhVJGfFkqG.jpg', NULL, NULL);
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `contact_emails`
--
ALTER TABLE `contact_emails`
ADD PRIMARY KEY (`id`),
ADD KEY `FK_dogs_id` (`dogs_id`);
--
-- Indizes für die Tabelle `dogs`
--
ALTER TABLE `dogs`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `index_qr_id` (`qr_id`),
ADD UNIQUE KEY `index_email` (`email`),
ADD UNIQUE KEY `ui_pwtoken` (`pwtoken`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `contact_emails`
--
ALTER TABLE `contact_emails`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
--
-- AUTO_INCREMENT für Tabelle `dogs`
--
ALTER TABLE `dogs`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--
-- Constraints der exportierten Tabellen
--
--
-- Constraints der Tabelle `contact_emails`
--
ALTER TABLE `contact_emails`
ADD CONSTRAINT `FK_dogs_id` FOREIGN KEY (`dogs_id`) REFERENCES `dogs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -1,4 +1,9 @@
<?php
// error_reporting(E_ALL);
// ini_set("display_errors", 1);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: access");
header("Access-Control-Allow-Methods: POST");

View File

@ -31,6 +31,7 @@ import { ModalsProvider } from '@mantine/modals';
import { NotificationsProvider } from '@mantine/notifications';
import { notificationAlert, notificationError, notificationSuccess } from './services/Notifications';
import DogNavbar from './components/DogNavbar';
import PasswordChange from './components/PasswordChange';
const App: React.FC = () =>
{
@ -118,6 +119,7 @@ const App: React.FC = () =>
<Route path="/pwreset/:pwtoken" element={<PasswordReset/>} />
<Route path="/wantnewpw" element={<WantNewPw/>} />
{user && <Route path="/upload" element={<FileUpload/>} />}
{user && <Route path="/chngpw" element={<PasswordChange/>} />}
{user && <Route path="/profil" element={<Profil/>} />}
</Routes>
</AppShell>

View File

@ -64,6 +64,11 @@ function DogNavbar({hasUser, hidden, onLogout}:{hasUser: boolean, hidden: boolea
<NaveBarIcon icon={<Icons.Grid size={32}/>} href={'/qr'} text={'QrCode drucken'} />
}
</Navbar.Section>
<Navbar.Section>
{hasUser &&
<NaveBarIcon icon={<Icons.Repeat size={32}/>} href={'/chngpw'} text={'Passwort ändern'} />
}
</Navbar.Section>
<Navbar.Section className='InputForm' >
{hasUser &&
<div onClick={(e)=>{onLogout()}}>

View File

@ -0,0 +1,105 @@
import React, { useState } from 'react';
import { Link } from 'react-router-dom';
import { passwordReset, getUser } from '../services/PhpApi';
import useSWR from 'swr';
import './InputForm.css';
import { notificationError, notificationSuccess } from '../services/Notifications';
import { PasswordInput } from '@mantine/core';
export default function PasswordChange()
{
const [formData, setFormData] = useState({
password1:'',
password2:''
});
const { data, error, isLoading } = useSWR('pwchange', getUser);
if (error) return (<div>failed to load</div>);
if (isLoading) return (<div>loading...</div>);
const onChangeInput = (e: React.FormEvent<HTMLInputElement> ) => {
setFormData({
...formData,
[e.currentTarget.name]:e.currentTarget.value
})
//console.log(e.currentTarget.value);
}
if(!data.success)
{
notificationError('Kein Benutzer?!');
}
const submitForm = async (e: React.FormEvent<HTMLFormElement>) =>
{
e.preventDefault();
if(!Object.values(formData).every(val => val.trim() !== ''))
{
notificationError('Bitte alle Felder ausfüllen!');
return;
}
if(formData.password1 !== formData.password2)
{
notificationError('Bitte 2mal das gleiche Passwort eingeben!');
return;
}
const sendData = new FormData();
const values = Object.values(formData);
const keys = Object.keys(formData);
for (const key of keys)
{
const index = keys.indexOf(key);
sendData.append(key, values[index]);
}
sendData.append('id', data.data.id);
const dataRes = await passwordReset(sendData);
if(dataRes.success)
{
notificationSuccess('Erfolgreich Passwort geändert!');
e.currentTarget?.reset();
}
else if(!dataRes.success && dataRes.message)
{
notificationError(dataRes.message);
}
}
return (
<div className='InputForm'>
<h2>Passwort ändern!</h2>
<div className='frameCenter'>
<div className='frame'>
<form onSubmit={submitForm}>
<PasswordInput className='IF_pw'
sx = {{ maxWidth: '80vw', minWidth: '30vw', width: '300px' }}
label = 'Passwort:'
name="password1"
onChange={onChangeInput}
placeholder="Passwort"
id="password1"
value={formData.password1}
required/>
<PasswordInput className='IF_pw'
sx = {{ maxWidth: '80vw', minWidth: '30vw', width: '300px' }}
label = 'Passwort wiederholen:'
name="password2"
onChange={onChangeInput}
placeholder="Passwort bestätigen"
id="password2"
value={formData.password2}
required/>
<button type="submit" >Passwort setzen!</button>
<div className="bottom-link"><Link to="/login">Login</Link></div>
</form>
</div>
</div>
</div>
)
}

View File

@ -58,7 +58,7 @@ function PreviewUpload({chgFile}:{chgFile: any})
// return ( <></> );
return (
<div className = 'frameCenter'>
<FileInput
<FileInput
// label = 'Datei :'
name="file"
placeholder="Bild auswählen"