← Zpět na obsah

Kapitola 19: Moje role v informačním systému

Uživatelské role - různá oprávnění pro různé uživatele
Uživatelské role - různá oprávnění pro různé uživatele

1. Úvod: Každý má své místo a svá pravidla

Představ si, že jsi ve hře. Každý hráč má svou postavu – někdo je rytíř, někdo kouzelník, někdo léčitel. Každá postava má jiné schopnosti a může dělat jiné věci. Podobně je to i v informačním systému. Každý, kdo systém používá, má svou roli a může dělat jen určité věci. V této kapitole se podíváme na to, jak poznat svou roli a co to pro tebe znamená.

2. Co je to informační systém? (Opakování)

Už víme, že informační systém je jako mozek, který pomáhá organizacím (škole, obchodu) fungovat. Sbírá, ukládá a zpracovává data.

Definice: Informační systém (IS)

Informační systém (IS) je organizovaný systém pro sběr, ukládání, zpracování a šíření dat a informací, který pomáhá lidem a organizacím plnit jejich úkoly a rozhodovat se.

3. Moje role v informačním systému

Když používáš informační systém, vždycky v něm máš nějakou roli. Tvoje role určuje, co v systému smíš a co nesmíš dělat. Je to jako mít klíče – některé klíče ti otevřou jen tvůj pokoj, jiné klíče otevřou celou školu.

Definice: Role uživatele

Role uživatele v informačním systému je soubor práv a povinností, které má konkrétní uživatel. Určuje, k jakým informacím má přístup a jaké činnosti může v systému provádět.

Proč je důležité mít různé role?

Mít různé role je velmi důležité pro:

Matice oprávnění - kdo může co
Matice oprávnění - kdo může co

4. Jak poznám svou roli a co mohu dělat?

Tvoji roli ti obvykle řekne ten, kdo ti přístup do systému dává (např. učitel, správce systému). A co můžeš dělat, poznáš podle toho, jaké možnosti ti systém nabízí.

Příklad: Tvoje role ve školním informačním systému (např. Bakaláři)

Jak specifikovat své činnosti?

Když víš, jakou máš roli, je dobré si uvědomit, jaké konkrétní činnosti v systému provádíš.

Příklad:
Jako žák v IS provádím činnost "Kontrola známek". To znamená, že se přihlásím, najdu sekci "Známky" a prohlédnu si je.

5. Různé role, různé činnosti

Podívejme se, jak se liší role a činnosti pro různé uživatele ve školním informačním systému.

Role uživatele Typické činnosti
Žák Prohlížení známek, rozvrhu, docházky; čtení zpráv; odevzdávání úkolů.
Učitel Zadávání známek; zapisování docházky; vytváření a úprava rozvrhu pro svou třídu; posílání zpráv žákům a rodičům.
Rodič Prohlížení známek a docházky svého dítěte; čtení zpráv od učitelů.
Ředitel/Správce IS Měnění rozvrhů celé školy; přidávání a odebírání uživatelů; přístup ke všem datům; nastavení celého systému.
RBAC - řízení přístupu pomocí rolí
RBAC - řízení přístupu pomocí rolí

Člověk a digitální svět

Informační systémy jsou dnes všude – ve školách, v obchodech, u lékaře, na úřadech. Učíme se je používat, abychom si zjednodušili život. Je ale důležité si uvědomit, že každý systém má svá pravidla a že naše role v něm určuje, co smíme a co ne. Respektování těchto pravidel a pochopení, proč existují, je základem zodpovědného chování v digitálním světě.

Otázky k zamyšlení

Úkoly pro praxi

  1. Moje role ve školním IS: Přihlas se do školního informačního systému (např. Bakaláři). Zkus si projít všechny možnosti, které máš k dispozici. Vypiš si 3 činnosti, které jako žák v systému provádíš.
  2. Role v online hře: Pokud hraješ nějakou online hru, zamysli se nad rolemi hráčů. Jaké jsou tam role (např. bojovník, léčitel, průzkumník)? Jaké činnosti může dělat každá role? Proč nemůže bojovník léčit a léčitel bojovat?
  3. Role v e-shopu: Představ si, že jsi na e-shopu. Jaká je tvoje role jako "zákazníka"? Jaké činnosti můžeš provádět (např. prohlížet zboží, přidávat do košíku, platit)? Jaká je role "prodavače" v e-shopu? Co smí dělat on?

* Rozšíření pro pokročilé

Role-Based Access Control (RBAC)

RBAC je standardní model řízení přístupu:

Princip nejmenších oprávnění

Principle of Least Privilege: Každý uživatel má pouze ta oprávnění, která nezbytně potřebuje ke své práci. Nic víc.

Oddělení povinností (Separation of Duties)

Kritické operace vyžadují více osob:

Modely řízení přístupu
Modely řízení přístupu

* Úkoly pro pokročilé

  1. Excel – RBAC matice: Vytvoř komplexní matici oprávnění pro redakční systém. Role: Čtenář, Autor, Editor, Admin. Oprávnění: číst články, psát články, editovat cizí články, mazat články, spravovat uživatele. Vyznač, která role má které oprávnění.
  2. Word – Bezpečnostní politika: Napiš dokument "Bezpečnostní politika přístupu" pro fiktivní firmu. Zahrň: definice rolí, princip nejmenších oprávnění, oddělení povinností, postup při změně role zaměstnance.
  3. Analýza reálného systému: Prozkoumej oprávnění v systému, který používáš (sociální síť, hra, školní systém). Napiš report: Jaké role existují? Jaká mají oprávnění? Je dodržen princip nejmenších oprávnění?
  4. Scratch – Systém s rolemi: Rozšiř svůj předchozí Scratch projekt: přidej více rolí (admin, moderátor, user). Každá role má přístup k jiným funkcím. Admin může vše, user jen základní věci.

** Rozšíření pro maturitní obory

Podrobně: Modely řízení přístupu

Identity Management

Správa identit v organizaci zahrnuje:

Audit a compliance

** Úkoly pro maturitní obory

  1. Excel – Komplexní RBAC: Navrhni RBAC pro nemocniční IS. Role: pacient, sestra, lékař, admin. Zdroje: zdravotní záznamy, rozvrhy, léky, fakturace. Vytvoř detailní matici oprávnění.
  2. Word – Bezpečnostní audit: Proveď "audit" oprávnění v nějakém systému (např. sdílený disk ve škole). Napiš zprávu: současný stav, nalezené problémy, doporučení.
  3. PowerPoint – Identity Management: Vytvoř prezentaci "Správa identit v organizaci" (10-12 snímků). Zahrň: životní cyklus identity, SSO, MFA, best practices.
  4. Canva – Plakát GDPR: Vytvoř v Canvě informační plakát "Práva subjektů údajů podle GDPR" pro kancelář. Přehledně zobraz všechna práva.
  5. Word – Politika hesel: Napiš dokument "Politika správy hesel" pro firmu. Zahrň: požadavky na složitost, frekvenci změny, zakázané praktiky, postup při zapomenutí.

*** Projekt pro IT obory: Databázová aplikace (část 6/6 - FINÁLE)

Dokončujeme projekt Evidence studentů. V této kapitole přidáš export dat a finalizuješ projekt.

Export do CSV a JSON

# utils/export.py
"""Modul pro export dat."""

import csv
import json
from datetime import datetime

def export_csv(data, filename):
    """Export dat do CSV souboru."""
    if not data:
        print("❌ Žádná data k exportu!")
        return

    with open(filename, 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=data[0].keys())
        writer.writeheader()
        writer.writerows(data)

    print(f"✅ Exportováno do {filename}")

def export_json(data, filename):
    """Export dat do JSON souboru."""
    # Převod datetime objektů na string
    def serialize(obj):
        if hasattr(obj, 'isoformat'):
            return obj.isoformat()
        return str(obj)

    with open(filename, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=2, default=serialize)

    print(f"✅ Exportováno do {filename}")

def generuj_report(db):
    """Generuje textový report."""
    stat = db.statistiky()
    studenti = db.vsichni()

    report = f"""
================================================================================
                    EVIDENCE STUDENTŮ - REPORT
                    Vygenerováno: {datetime.now().strftime('%d.%m.%Y %H:%M')}
================================================================================

STATISTIKY:
-----------
Celkem studentů: {stat['pocet']}
Počet tříd: {stat['pocet_trid']}

SEZNAM STUDENTŮ:
----------------
"""
    for s in studenti:
        report += f"  • {s['jmeno']} {s['prijmeni']} ({s['trida'] or '-'})\n"

    return report
        

Rozšířený main.py s exportem

# Přidej do menu:
print("8. Export dat")

# Přidej funkci:
def export_menu(db):
    print("\n📤 EXPORT DAT")
    print("1. Export do CSV")
    print("2. Export do JSON")
    print("3. Generovat report (TXT)")

    volba = input("Vyber formát: ")
    studenti = db.vsichni()

    if volba == "1":
        export_csv(studenti, f"export_{datetime.now():%Y%m%d}.csv")
    elif volba == "2":
        export_json(studenti, f"export_{datetime.now():%Y%m%d}.json")
    elif volba == "3":
        report = generuj_report(db)
        filename = f"report_{datetime.now():%Y%m%d}.txt"
        with open(filename, 'w', encoding='utf-8') as f:
            f.write(report)
        print(f"✅ Report uložen: {filename}")
        

Finální commit a release

# Přidej všechny změny
git add .

# Finální commit
git commit -m "Dokončení projektu Evidence studentů v1.0.0

- Kompletní CRUD operace pro studenty
- Propojení Python + MySQL
- CLI interface
- Export do CSV, JSON, TXT report
- Testy a dokumentace"

# Vytvoř tag
git tag -a v1.0.0 -m "První stabilní verze"

# Push včetně tagu
git push origin main --tags
        

🎉 Finální struktura projektu

evidence-studentu/
├── .git/
├── .gitignore             ✅
├── LICENSE                ✅ MIT
├── README.md              ✅ Dokumentace
├── main.py                ✅ CLI aplikace
├── db/
│   ├── __init__.py
│   └── connection.py      ✅ MySQL připojení
├── models/
│   ├── __init__.py
│   └── student_db.py      ✅ CRUD operace
├── utils/
│   ├── __init__.py
│   └── export.py          ✅ Export funkcí
├── sql/
│   ├── schema.sql         ✅ Struktura DB
│   └── queries.sql        ✅ Ukázkové dotazy
└── tests/
    └── test_student.py    ✅ Testy

🏆 SQL PROJEKT DOKONČEN! 🏆
        
🎓 Co jsi se naučil v kapitolách 14-19:

*** Závěrečný úkol

  1. Dokonči projekt podle kroků výše.
  2. Přidej známky: zobrazení, přidání, průměr studenta.
  3. Vytvoř release v1.0.0 na GitHubu.
  4. Bonus: Přidej import z CSV.
← Zpět na obsah