feat: add privacy policy and terms of service pages with CMS content

This commit is contained in:
Do Siki
2026-04-26 23:30:53 +02:00
parent 703ce7f1d0
commit feb68436cb
8 changed files with 292 additions and 3 deletions
@@ -0,0 +1,82 @@
<img src="https://r2cdn.perplexity.ai/pplx-full-logo-primary-dark%402x.png" style="height:64px;margin-right:32px"/>
# Szükség lenne egy adatvédelmi tájékoztatóra
Igen, szükség van rá, de fontos: egy adatvédelmi tájékoztató csak akkor jó, ha a **valós adatkezelési gyakorlatotokat** írja le tömören, átláthatóan és naprakészen; a NAIH is ezt hangsúlyozza, és a GDPR 1213. cikke is előírja az érthető, előzetes tájékoztatást.[^1][^2][^3]
## Mire lesz szükség
Ahhoz, hogy használható és jogilag is közelebb legyen a valósághoz, össze kell írni legalább ezeket az adatokat:
- Adatkezelő neve, címe, e-mail címe, telefonszáma, cégjegyzékszám/adószám.[^2][^3]
- Milyen adatokat kezeltek: például kapcsolatfelvételi űrlap adatai, ügyféladatok, számlázási adatok, domain-regisztrációhoz szükséges adatok, e-mail szolgáltatáshoz kapcsolódó technikai adatok, sütik.[^4][^5][^6]
- Mi a jogalap és a cél: szerződés teljesítése, jogi kötelezettség, hozzájárulás, jogos érdek.[^1][^2]
- Mennyi ideig őrzitek az adatokat, kik az adatfeldolgozók, történik-e adattovábbítás, és hogyan lehet élni az érintetti jogokkal.[^3][^2]
## A ti esetetekben
Nálatok valószínűleg külön fejezet kell majd legalább ezekről:
- Honlaplátogatás és sütik.[^7][^5]
- Kapcsolatfelvétel e-mailben vagy űrlapon.[^4]
- Szerződéskötés, ügyfél-nyilvántartás, számlázás.[^2]
- Webtárhelyszolgáltatás.[^8][^9]
- Domain-regisztráció és kapcsolattartói adatok.[^6]
- E-mail szolgáltatás és ehhez kapcsolódó technikai adatkezelés.[^9][^4]
## Amit javaslok
A legjobb, ha készítek neked egy **magyar nyelvű, szerkeszthető adatvédelmi tájékoztató sablont**, kifejezetten egy kis IT cégre szabva, webtárhely + domain + e-mail szolgáltatásokkal. A minta jó kiindulás lehet, de véglegesítés előtt mindenképp a saját működésetekhez kell igazítani, mert a tájékoztatóban csak a ténylegesen végzett adatkezelés szerepelhet.[^10][^3]
## Mire válaszolj röviden
Küldd el ezt a 10 pontot, és abból összerakom:
- Cég neve
- Székhely
- Kapcsolati e-mail
- Telefonszám
- Adószám / cégjegyzékszám
- Van-e kapcsolatfelvételi űrlap a honlapon
- Használtok-e sütiket, Google Analyticset, Meta pixelt vagy hasonlót
- Van-e online ügyfélfiók
- Ki számláz, ki a tárhely/infrastruktúra üzemeltetője
- Pontosan milyen szolgáltatásokat nyújtotok: webtárhely, domain-regisztráció, levelezés, egyéb
Ha akarod, a következő üzenetben megcsinálom neked már most **kitölthető sablonként**, [HELYKITÖLTŐ] mezőkkel, hogy csak be kelljen írnod a saját adatokat.[^3][^2]
<span style="display:none">[^11][^12][^13][^14][^15]</span>
<div align="center">⁂</div>
[^1]: https://naih.hu/files/2016-11-29-04-OK-alapelvek-jogalapok.pdf
[^2]: https://www.legislation.gov.uk/eur/2016/679/contents
[^3]: https://gdpr.news.hu/cikkek/naih-hatarozat-adatkezelesi-tajekoztato-naprakeszen-tartasa/
[^4]: https://domainwebtarhely.hu/adatvedelmi-es-adatkezelesi-tajekoztato/
[^5]: https://www.webadat.hu
[^6]: https://tarhely.eu/dokumentumok/adatvedelmi_szabalyzat.pdf
[^7]: https://www.mhosting.hu/blog/2025/03/03/gdpr-adatvedelmi-szabalyok-weboldalaknak-milyen-eloirasok-vonatkoznak-rank-es-hogyan-felelhetunk-meg-nekik/
[^8]: https://www.honlaptarhely.hu/gdpr-tudnivalok
[^9]: https://megacp.com/adatvedelmi_tajekoztato.pdf
[^10]: https://naih.hu/files/tajekoztato-ajanlas-v-2015-10-09.pdf
[^11]: https://www.awh.hu/blog/mi-az-a-gdpr-es-hogyan-erinti-a-weboldalakat
[^12]: https://gdpr-tanacsadas.hu/adatkezelesi-alapelvek/
[^13]: https://gdpr-info.eu
[^14]: https://aspnet.hu/adatvedelmi-tajekoztato-gdpr-aspnet-kft/
[^15]: https://premiumweboldalkeszites.hu/gdpr-es-a-weboldal-adatvedelem-es-adatbiztonsag-a-weben/
+18
View File
@@ -45,3 +45,21 @@
✓ Compiled / in 25ms
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
GET / 200 in 202ms
✓ Compiled /kapcsolat in 16ms
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
GET /kapcsolat 200 in 222ms
✓ Compiled /_not-found/page in 136ms
GET /adatvedelem 404 in 221ms
GET /kapcsolat 200 in 104ms
✓ Compiled /kapcsolat in 74ms
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
GET /kapcsolat 200 in 398ms
GET /kapcsolat 200 in 346ms
GET /favicon.ico?favicon.0b3bf435.ico 200 in 239ms
✓ Compiled in 81ms
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
GET /kapcsolat 200 in 230ms
GET /kapcsolat 200 in 91ms
⚠ metadataBase property in metadata export is not set for resolving social open graph or twitter images, using "http://localhost:3000". See https://nextjs.org/docs/app/api-reference/functions/generate-metadata#metadatabase
GET /kapcsolat 200 in 83ms
GET /kapcsolat 200 in 33ms
+54
View File
@@ -0,0 +1,54 @@
import { content } from '@/content'
export const metadata = {
title: `${content.pages.adatvedelem.title} | ${content.common.labels.features || 'mozdIT Bt.'}`,
description: 'Adatvédelmi tájékoztató - ismerje meg, hogyan kezeljük személyes adatait.',
}
export default function PrivacyPolicy() {
const pageContent = content.pages.adatvedelem
return (
<div className="py-20 lg:py-28 max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="mb-12">
<h1
className="text-4xl md:text-5xl font-bold mb-4"
style={{ color: 'var(--color-foreground)' }}
>
{pageContent.title}
</h1>
<p
className="text-sm"
style={{ color: 'var(--color-foreground-muted)' }}
>
Utolsó frissítés: {pageContent.lastUpdated}
</p>
</div>
<div className="space-y-12">
{pageContent.sections.map((section) => (
<section key={section.id}>
<h2
className="text-2xl font-semibold mb-4"
style={{ color: 'var(--color-foreground)' }}
>
{section.title}
</h2>
<div
className="prose max-w-none"
style={{ color: 'var(--color-foreground-muted)' }}
dangerouslySetInnerHTML={{
// Ehelyett a valódi alkalmazásban javasolt egy Markdown parser, de az egyszerűség kedvéért a sima sortöréseket lekezeljük
__html: section.content
.replace(/\n\n/g, '</p><p class="mb-4">')
.replace(/• \*\*(.*?)\*\*/g, '<br/>• <strong>$1</strong>')
.replace(/^/, '<p class="mb-4">')
.replace(/$/, '</p>')
}}
/>
</section>
))}
</div>
</div>
)
}
@@ -0,0 +1,53 @@
import { content } from '@/content'
export const metadata = {
title: `${content.pages.hasznalatiFeltetelek.title} | ${content.common.labels.features || 'mozdIT Bt.'}`,
description: 'Általános Szerződési Feltételek - Ismerje meg a mozdIT Bt. szolgáltatásainak használati feltételeit.',
}
export default function TermsOfService() {
const pageContent = content.pages.hasznalatiFeltetelek
return (
<div className="py-20 lg:py-28 max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div className="mb-12">
<h1
className="text-4xl md:text-5xl font-bold mb-4"
style={{ color: 'var(--color-foreground)' }}
>
{pageContent.title}
</h1>
<p
className="text-sm"
style={{ color: 'var(--color-foreground-muted)' }}
>
Utolsó frissítés: {pageContent.lastUpdated}
</p>
</div>
<div className="space-y-12">
{pageContent.sections.map((section) => (
<section key={section.id}>
<h2
className="text-2xl font-semibold mb-4"
style={{ color: 'var(--color-foreground)' }}
>
{section.title}
</h2>
<div
className="prose max-w-none"
style={{ color: 'var(--color-foreground-muted)' }}
dangerouslySetInnerHTML={{
__html: section.content
.replace(/\n\n/g, '</p><p class="mb-4">')
.replace(/• \*\*(.*?)\*\*/g, '<br/>• <strong>$1</strong>')
.replace(/^/, '<p class="mb-4">')
.replace(/$/, '</p>')
}}
/>
</section>
))}
</div>
</div>
)
}
+10 -3
View File
@@ -20,7 +20,8 @@ import type {
HomePageContent,
AboutPageContent,
ServicesPageContent,
ContactPageContent
ContactPageContent,
LegalPageContent
} from './types'
// Import JSON files
@@ -29,6 +30,8 @@ import homeJson from './pages/home.json'
import aboutJson from './pages/about.json'
import servicesJson from './pages/services.json'
import contactJson from './pages/contact.json'
import adatvedelemJson from './pages/adatvedelem.json'
import hasznalatiFeltetelekJson from './pages/hasznalati-feltetelek.json'
// Type assertions for JSON imports
const common: CommonContent = commonJson as CommonContent
@@ -36,6 +39,8 @@ const home: HomePageContent = homeJson as HomePageContent
const about: AboutPageContent = aboutJson as AboutPageContent
const services: ServicesPageContent = servicesJson as ServicesPageContent
const contact: ContactPageContent = contactJson as ContactPageContent
const adatvedelem: LegalPageContent = adatvedelemJson as LegalPageContent
const hasznalatiFeltetelek: LegalPageContent = hasznalatiFeltetelekJson as LegalPageContent
// Combined content object
export const content: SiteContent = {
@@ -44,7 +49,9 @@ export const content: SiteContent = {
home,
about,
services,
contact
contact,
adatvedelem,
hasznalatiFeltetelek
}
}
@@ -56,7 +63,7 @@ export function getPageContent<T extends keyof SiteContent['pages']>(
}
// Export individual content for direct imports
export { common, home, about, services, contact }
export { common, home, about, services, contact, adatvedelem, hasznalatiFeltetelek }
// Re-export types
export * from './types'
+31
View File
@@ -0,0 +1,31 @@
{
"title": "Adatvédelmi Tájékoztató",
"lastUpdated": "2026. április 26.",
"sections": [
{
"id": "bevezetes",
"title": "1. Bevezetés",
"content": "A mozdIT Bt. (székhely: Budapest, Magyarország; e-mail: info@mozdit.hu) mint adatkezelő elkötelezett a felhasználók személyes adatainak védelme iránt. Jelen tájékoztató célja, hogy az Európai Unió Általános Adatvédelmi Rendelete (GDPR) előírásainak megfelelően átlátható módon bemutassa cégünk adatkezelési gyakorlatát."
},
{
"id": "adatkezeles-celja",
"title": "2. Milyen adatokat kezelünk, mi a céljuk és a jogalapjuk?",
"content": "A szolgáltatásaink nyújtása során az alábbi adatokat kezeljük:\n\n• **Kapcsolatfelvétel és űrlapok:** Név, e-mail cím, telefonszám, a beküldött üzenet tartalma. (Cél: ügyfélkapcsolat, árajánlatadás. Jogalap: hozzájárulás és szerződést megelőző lépések.)\n• **Ügyfél-nyilvántartás és számlázás:** Számlázási név és cím, adószám, kapcsolattartó adatai. (Cél: szolgáltatás biztosítása, számlázás. Jogalap: jogi kötelezettség, szerződés teljesítése.)\n• **Webtárhely és e-mail szolgáltatás:** Technikai naplófájlok (IP címek, belépési időpontok), e-mail forgalmi adatok szűrése (spam, vírusok). (Cél: IT biztonság fenntartása, szolgáltatás biztosítása. Jogalap: szerződés teljesítése, jogos érdek.)\n• **Domain-regisztráció:** Tulajdonosi és kapcsolattartói adatok. (Cél: domain delegáció ügyintézése a regisztrátorok felé. Jogalap: szerződés teljesítése.)\n• **Sütik (Cookies):** Weboldalunk a megfelelő technikai működés érdekében alapvető (munkamenet) sütiket használ. Harmadik fél analitikai kódjait (pl. Meta pixel) jelenleg nem használjuk az alapvető nyomkövetéshez."
},
{
"id": "adattovabbitas",
"title": "3. Adattovábbítás és adatfeldolgozók",
"content": "A személyes adatokat bizalmasan kezeljük, és alapvetően a mozdIT Bt. saját, dedikált infrastruktúráján tároljuk. Harmadik félnek csak jogszabályi kötelezettség alapján (pl. NAV részére könyvelési okokból), illetve a domain-regisztrációs szolgáltatások keretében továbbítunk adatokat az illetékes regisztrátorok (pl. ISZT) felé."
},
{
"id": "adatmegorzes",
"title": "4. Az adatkezelés időtartama",
"content": "A számviteli bizonylatokat a Számviteli törvény értelmében 8 évig megőrizzük. A kapcsolatfelvételi űrlapon megadott, de szerződéssel nem végződő adatokat az ügy lezárását követő 1 év elteltével töröljük. A webszerverek technikai naplófájljait (logokat) a biztonsági és üzemeltetési feladatok ellátása céljából legfeljebb 30 napig őrizzük meg."
},
{
"id": "jogok",
"title": "5. Az érintettek jogai",
"content": "Az érintettek bármikor tájékoztatást kérhetnek adataik kezeléséről, kérhetik azok helyesbítését, törlését (a kötelező adatkezelések kivételével) vagy zárolását. Kérésüket az info@mozdit.hu e-mail címre küldhetik el, amire indokolatlan késedelem nélkül, de legkésőbb egy hónapon belül válaszolunk. Jogosulatlan adatkezelés esetén a Nemzeti Adatvédelmi és Információszabadság Hatósághoz (NAIH) lehet fordulni panasszal."
}
]
}
@@ -0,0 +1,31 @@
{
"title": "Használati Feltételek (ÁSZF)",
"lastUpdated": "2026. április 26.",
"sections": [
{
"id": "bevezetes",
"title": "1. Általános rendelkezések",
"content": "Jelen Általános Szerződési Feltételek (ÁSZF) a mozdIT Bt. (székhely: Budapest, Magyarország; e-mail: info@mozdit.hu) által nyújtott webtárhely, e-mail szolgáltatás és domain regisztráció szolgáltatásainak igénybevételére vonatkozó szabályokat tartalmazzák. A szolgáltatások megrendelésével és használatával az Ügyfél elfogadja jelen feltételeket."
},
{
"id": "szolgaltatasok",
"title": "2. Szolgáltatások leírása",
"content": "A mozdIT Bt. dedikált szerverein nyújt webtárhely, e-mail fiók és DNS szolgáltatásokat. A szolgáltatások garantált rendelkezésre állása 99,9% éves szinten. A szolgáltató automatikus biztonsági mentéseket végez, de javasolja az Ügyfél számára is az adatai rendszeres mentését."
},
{
"id": "ugyfel-kotelezettsegei",
"title": "3. Az Ügyfél kötelezettségei",
"content": "Az Ügyfél köteles a szolgáltatásokat rendeltetésszerűen használni. Szigorúan tilos a tárhelyen és e-mail fiókokban illegális, szerzői jogot sértő tartalmak elhelyezése, valamint spam (kéretlen reklámlevél) tömeges küldése. A Szolgáltató fenntartja a jogot, hogy jogsértés vagy hálózatot veszélyeztető tevékenység (pl. DDoS forrás) észlelése esetén a szolgáltatást előzetes értesítés nélkül azonnal szüneteltesse vagy megszüntesse."
},
{
"id": "dijazas",
"title": "4. Díjazás és fizetési feltételek",
"content": "A szolgáltatások díjai a felek által megkötött egyedi megállapodás vagy elfogadott árajánlat alapján fizetendők. A számlázás elektronikus úton történik. A fizetési határidő elmulasztása esetén a Szolgáltató jogosult a szolgáltatás szüneteltetésére, melyről az Ügyfelet előzetesen e-mailben értesíti."
},
{
"id": "felelosseg",
"title": "5. Felelősségkorlátozás",
"content": "A Szolgáltató mindent megtesz az adatok biztonsága és a folyamatos üzemeltetés érdekében, ugyanakkor nem vállal felelősséget a vis maior, illetve a harmadik felek által okozott (pl. hálózati) kimaradások miatti esetleges adatvesztésért vagy elmaradt haszonért."
}
]
}
+13
View File
@@ -166,6 +166,16 @@ export interface CommonContent {
}
}
export interface LegalPageContent {
title: string
lastUpdated: string
sections: {
id: string
title: string
content: string
}[]
}
// Main content structure
export interface SiteContent {
common: CommonContent
@@ -174,5 +184,8 @@ export interface SiteContent {
about: AboutPageContent
services: ServicesPageContent
contact: ContactPageContent
adatvedelem: LegalPageContent
hasznalatiFeltetelek: LegalPageContent
}
}