def tjek(user): return tjek_rettigheder(user, {'arkiveringsversioner_typer_se'})
def tjek(user): return tjek_rettigheder(user, {'hardware_medie_se'})
def tjek(user): return tjek_rettigheder(user, {'system_grupper_se'})
def leverandoer_view(request, pk=None): if request.method == 'GET': if pk: if Leverandoer.objects.filter(pk=pk).exists(): _leverandoer_obj = Leverandoer.objects.get(pk=pk) return render( request, 'arkiveringsversioner/leverandoer.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _leverandoer_obj.pk, "navn": _leverandoer_obj.navn, }) if not Leverandoer.objects.filter(pk=pk).exists(): messages.error(request, "Den angivet leverandør findes ikke.") return redirect('leverandoerer_view') if not pk: messages.error(request, "Ingen leverandør angivet.") return redirect('leverandoerer_view') if request.method == 'POST' and tjek_rettigheder( request.user, {'arkiveringsversioner_leverandør_rediger'}): if 'fortryd' in request.POST: return redirect('leverandoerer_view') _pk = request.POST['pk'] if 'pk' in request.POST else None _navn = request.POST['navn'] if 'navn' in request.POST else None if _pk: _leverandoer_obj = None _tjek_navn = False try: _pk = int(_pk) except ValueError: messages.error(request, f"Den angivet leverandør findes ikke.") return redirect('leverandoerer_view') if Leverandoer.objects.filter(pk=_pk).exists(): _leverandoer_obj = Leverandoer.objects.get(pk=_pk) else: messages.error(request, f"Den angivet leverandør findes ikke.") return redirect('leverandoerer_view') if 'slet' in request.POST and tjek_rettigheder( request.user, {'arkiveringsversioner_leverandør_slet'}): messages.warning( request, f"Leverandøren '{_leverandoer_obj.navn}' blev slettet.") _leverandoer_obj.delete() return redirect('leverandoerer_view') if _navn != '' and Leverandoer.objects.filter(navn=_navn).exists(): _navn_leverandoer_obj = Leverandoer.objects.filter( navn=_navn).first() if _leverandoer_obj.pk == _navn_leverandoer_obj.pk: _tjek_navn = True else: _tjek_navn = False messages.error( request, f"En leverandør med navnet '{_navn}' findes allerede.") else: _tjek_navn = True if not _tjek_navn: return render( request, 'arkiveringsversioner/leverandoer.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _pk, "navn": _navn, }) _leverandoer_obj.navn = _navn.strip() _leverandoer_obj.save() messages.success( request, f"Leverandøren '{_leverandoer_obj.navn}' blev gemt.") return redirect('leverandoerer_view') if not _pk and tjek_rettigheder( request.user, {'arkiveringsversioner_leverandør_opret'}): _leverandoer_obj = Leverandoer.objects.create() messages.success(request, "Ny leverandør blev oprettet.") return render( request, 'arkiveringsversioner/leverandoer.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _leverandoer_obj.pk, "navn": _leverandoer_obj.navn, "ny": True, }) return redirect('leverandoerer_view') return redirect('leverandoerer_view')
def medie_view(request, pk=None): if request.method == 'GET': if pk: if Medie.objects.filter(pk=pk).exists(): _medie_obj = Medie.objects.get(pk=pk) return render( request, 'hardware/medie.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _medie_obj.pk, "navn": _medie_obj.navn, "producent": _medie_obj.producent, "kapacitet": _medie_obj.kapacitet, "medie_type": _medie_obj.type, "ny": False, }) if not Medie.objects.filter(pk=pk).exists(): messages.error(request, "Det angivet medie findes ikke.") return redirect('medier_view') if not pk: messages.error(request, "Intet medie angivet.") return redirect('medier_view') if request.method == 'POST' and tjek_rettigheder( request.user, {'hardware_medie_rediger'}): if 'fortryd' in request.POST: return redirect('medier_view') _pk = request.POST['pk'] if 'pk' in request.POST else None _navn = request.POST['navn'].upper( ) if 'navn' in request.POST else None _producent = request.POST[ 'producent'] if 'producent' in request.POST else None _kapacitet = request.POST[ 'kapacitet'] if 'kapacitet' in request.POST else None _medie_type = request.POST[ 'medie_type'] if 'medie_type' in request.POST else None if _pk: _medie_obj = None _tjek_navn = False _tjek_kapacitet = False try: _pk = int(_pk) except ValueError: messages.error(request, f"Det angivet medie findes ikke.") return redirect('medier_view') if Medie.objects.filter(pk=_pk).exists(): _medie_obj = Medie.objects.get(pk=_pk) else: messages.error(request, f"Det angivet medie findes ikke.") return redirect('medier_view') if 'slet' in request.POST and tjek_rettigheder( request.user, {'hardware_medie_slet'}): messages.warning(request, f"Mediet '{_medie_obj.navn}' blev slettet.") _medie_obj.delete() return redirect('medier_view') if _navn != '' and Medie.objects.filter(navn=_navn).exists(): _navn_medie_obj = Medie.objects.filter(navn=_navn).first() if _medie_obj.pk == _navn_medie_obj.pk: _tjek_navn = True else: _tjek_navn = False messages.error( request, f"Et medie med navnet '{_navn}' findes allerede.") else: _tjek_navn = True if _kapacitet != '': try: _kapacitet = int(_kapacitet) _tjek_kapacitet = True except ValueError: _tjek_kapacitet = False messages.error(request, "'Kapacitet i GB' er ikke et heltal.") else: _kapacitet = 0 _tjek_kapacitet = True if not _tjek_navn or not _tjek_kapacitet: return render( request, 'hardware/medie.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _pk, "navn": _navn, "producent": _producent, "kapacitet": _kapacitet, "medie_type": _medie_type, "ny": False, }) _medie_obj.navn = _navn.strip() _medie_obj.producent = _producent.strip() _medie_obj.kapacitet = _kapacitet _medie_obj.type = _medie_type _medie_obj.save() messages.success(request, f"Mediet '{_medie_obj.navn}' blev gemt.") return redirect('medier_view') if not _pk and tjek_rettigheder(request.user, {'hardware_medie_opret'}): _medie_obj = Medie.objects.create() messages.success(request, "Nyt medie blev oprettet.") return render( request, 'hardware/medie.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _medie_obj.pk, "navn": _medie_obj.navn, "producent": _medie_obj.producent, "kapacitet": _medie_obj.kapacitet, "medie_type": _medie_obj.type, "ny": True, }) return redirect('medier_view') return redirect('medier_view')
def bruger_view(request, initialer=None): if request.method == 'GET': if initialer: if Profil.objects.filter(initialer=initialer).exists(): _profil_obj = Profil.objects.get(initialer=initialer) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _tildelte_grupper = [] for _gruppe_obj in Gruppe.objects.filter(bruger=_bruger_obj): _tildelte_grupper.append(_gruppe_obj.navn) return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": _bruger_obj.profil.initialer, "fornavn": _bruger_obj.profil.fornavn, "mellemnavn": _bruger_obj.profil.mellemnavn, "efternavn": _bruger_obj.profil.efternavn, "adgangskode": '', "tildelte_grupper": sorted(_tildelte_grupper), "ny": False, "slet": False if 'SUPERUSER' in _tildelte_grupper else True }) if not Profil.objects.filter(initialer=initialer).exists(): messages.error(request, "Den angivet bruger findes ikke.") return redirect('brugere_view') if not initialer: return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": '', "fornavn": '', "mellemnavn": '', "efternavn": '', "adgangskode": '', "ny": True, "slet": False, }) if request.method == 'POST' and tjek_rettigheder( request.user, {'system_bruger_rediger'}): if 'fortryd' in request.POST: return redirect('brugere_view') _ny = request.POST['ny'] if 'ny' in request.POST else 'False' _initialer = request.POST['initialer'].upper( ) if 'initialer' in request.POST else None _fornavn = request.POST[ 'fornavn'] if 'fornavn' in request.POST else None _mellemnavn = request.POST[ 'mellemnavn'] if 'mellemnavn' in request.POST else None _efternavn = request.POST[ 'efternavn'] if 'efternavn' in request.POST else None _adgangskode = request.POST[ 'adgangskode'] if 'adgangskode' in request.POST else None if _initialer: if len(_initialer) != 3: _grupper = [] for _gruppe_obj in Gruppe.objects.all(): _grupper.append(_gruppe_obj.navn) _tildelte_grupper = [] for _gruppe in _grupper: if _gruppe in request.POST: _tildelte_grupper.append(_gruppe) messages.error( request, f"Initialer skal altid udgøres af tre tegn. Hverken mere eller mindre. Tre tegn!" ) return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": _initialer, "fornavn": _fornavn, "mellemnavn": _mellemnavn, "efternavn": _efternavn, "adgangskode": '', "tildelte_grupper": sorted(_tildelte_grupper), "ny": True, "slet": False, }) if Profil.objects.filter(initialer=_initialer).exists(): if 'slet' in request.POST and tjek_rettigheder( request.user, {'system_bruger_slet'}): _user_obj = User.objects.get(username=_initialer) _profil_obj = Profil.objects.get(initialer=_initialer) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _tildelte_grupper = [] for _gruppe_obj in Gruppe.objects.filter( bruger=_bruger_obj): _tildelte_grupper.append(_gruppe_obj.navn) if 'SUPERUSER' in _tildelte_grupper: messages.error( request, f"Du kan ikke slette en bruger der er medlem af gruppen 'SUPERUSER'" ) return redirect('brugere_view') _user_obj.delete() _bruger_obj.delete() _profil_obj.delete() messages.warning(request, f"Brugeren '{_initialer}' blev slettet.") return redirect('brugere_view') if _ny == 'True': messages.error( request, f"Brugeren '{_initialer}' findes allerede.") return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "fornavn": _fornavn, "mellemnavn": _mellemnavn, "efternavn": _efternavn, "adgangskode": '', "ny": True, "slet": False, }) if not _ny == 'True': _profil_obj = Profil.objects.get(initialer=_initialer) _bruger_obj = Bruger.objects.get(profil=_profil_obj) _bruger_obj.profil.fornavn = _fornavn if _fornavn != '' else _bruger_obj.profil.fornavn _bruger_obj.profil.mellemnavn = _mellemnavn if _mellemnavn != '' else _bruger_obj.profil.mellemnavn _bruger_obj.profil.efternavn = _efternavn if _efternavn != '' else _bruger_obj.profil.efternavn _bruger_obj.profil.save() if _adgangskode != '': _user_obj = User.objects.get(username=_initialer) _user_obj.set_password(_adgangskode) _user_obj.save() _grupper = [] for gruppe_obj in Gruppe.objects.all(): _grupper.append(gruppe_obj.navn) for _gruppe in _grupper: _post_gruppe = request.POST[ _gruppe] if _gruppe in request.POST else None if _post_gruppe: if not Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first(): _gruppe_obj = Gruppe.objects.get(navn=_gruppe) _gruppe_obj.bruger.add(_bruger_obj) if not _post_gruppe: _gruppe_obj = Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first() if _gruppe_obj: _gruppe_obj.bruger.remove(_bruger_obj) messages.success(request, f"Brugeren '{_initialer}' blev gemt.") return redirect('brugere_view') if not Profil.objects.filter( initialer=_initialer).exists() and tjek_rettigheder( request.user, {'system_bruger_opret'}): User.objects.create_user(username=_initialer) _profil_obj = Profil.objects.create(initialer=_initialer) _bruger_obj = Bruger.objects.create(profil=_profil_obj) _bruger_obj.profil.fornavn = _fornavn if _fornavn != '' else _bruger_obj.profil.fornavn _bruger_obj.profil.mellemnavn = _mellemnavn if _mellemnavn != '' else _bruger_obj.profil.mellemnavn _bruger_obj.profil.efternavn = _efternavn if _efternavn != '' else _bruger_obj.profil.efternavn _bruger_obj.profil.save() if _adgangskode: _user_obj = User.objects.get(username=_initialer) _user_obj.set_password(_adgangskode) _user_obj.save() _grupper = [] for gruppe_obj in Gruppe.objects.all(): _grupper.append(gruppe_obj.navn) for _gruppe in _grupper: _post_gruppe = request.POST[ _gruppe] if _gruppe in request.POST else None if _post_gruppe: if not Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first(): _gruppe_obj = Gruppe.objects.get(navn=_gruppe) _gruppe_obj.bruger.add(_bruger_obj) if not _post_gruppe: _gruppe_obj = Gruppe.objects.filter( navn=_gruppe, bruger=_bruger_obj).first() if _gruppe_obj: _gruppe_obj.bruger.remove(_bruger_obj) messages.success(request, f"Brugeren '{_initialer}' blev oprettet.") return redirect('brugere_view') if not _initialer: messages.error(request, f"Udfyld venligst feltet 'Initialer'.") return render( request, 'system/bruger.html', { "bruger_rettigheder": rettigheder(request.user), "initialer": _initialer, "fornavn": _fornavn, "mellemnavn": _mellemnavn, "efternavn": _efternavn, "adgangskode": '', "ny": True, "slet": False, })
def tjek(user): return tjek_rettigheder(user, {'system_bruger_se'})
def tjek(user): return tjek_rettigheder(user, {'arkiveringsversioner_leverandører_se'})
def tjek(user): return tjek_rettigheder(user, {'hardware_maskiner_se'})
def tjek(user): return tjek_rettigheder(user, {'statistik_se'})
def tjek(user): return tjek_rettigheder(user, {'system_profil_se'})
def profil_view(request, initialer=None): if request.method == 'GET': if Profil.objects.filter(initialer=request.user.username).exists(): profil_obj = Profil.objects.get(initialer=request.user.username) return render( request, 'system/profil.html', { "bruger_rettigheder": rettigheder(request.user), "profil": profil_obj }) if request.method == 'POST' and tjek_rettigheder( request.user, {'system_profil_rediger'}): if Profil.objects.filter(initialer=request.user.username).exists(): _profil_obj = Profil.objects.get(initialer=request.user.username) _user_obj = User.objects.get(username=request.user.username) _nuvaerende_adgangskode = request.POST[ 'nuvaerende_adgangskode'] if 'nuvaerende_adgangskode' in request.POST else None _ny_adgangskode = request.POST[ 'ny_adgangskode'] if 'ny_adgangskode' in request.POST else None _bekraeft_adgangskode = request.POST[ 'bekraeft_adgangskode'] if 'bekraeft_adgangskode' in request.POST else None _check_nuvaerende_adgangskode = False _check_ny_og_bekraeft_adgangskode = False if _nuvaerende_adgangskode: if _user_obj.check_password(_nuvaerende_adgangskode): _check_nuvaerende_adgangskode = True else: messages.error(request, "'Nuværende' adgangkode er forkert.") else: messages.error(request, "Feltet 'Nuværende' er tomt.") if not _ny_adgangskode: messages.error(request, "Feltet 'Ny' er tomt.") if not _bekraeft_adgangskode: messages.error(request, "Feltet 'Bekræft' er tomt.") if _ny_adgangskode and _bekraeft_adgangskode: if _ny_adgangskode == _bekraeft_adgangskode: _check_ny_og_bekraeft_adgangskode = True else: messages.error( request, "'Ny' afgangskode og 'Bekræft' adgangskode stemmer ikke overens." ) if _check_nuvaerende_adgangskode and _check_ny_og_bekraeft_adgangskode: _user_obj.set_password(_ny_adgangskode) _user_obj.save() return redirect('login_view') return render( request, 'system/profil.html', { "bruger_rettigheder": rettigheder(request.user), "profil": _profil_obj, "nuvaerende_adgangskode": _nuvaerende_adgangskode, "ny_adgangskode": _ny_adgangskode, "bekraeft_adgangskode": _bekraeft_adgangskode, }) return redirect('forside_view')
def tjek(user): return tjek_rettigheder(user, {'system_logind'})
def maskine_view(request, pk=None): if request.method == 'GET': if pk: if Maskine.objects.filter(pk=pk).exists(): _maskine_obj = Maskine.objects.get(pk=pk) return render( request, 'hardware/maskine.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _maskine_obj.pk, "navn": _maskine_obj.navn, "processor": _maskine_obj.processor, "bundkort": _maskine_obj.bundkort, "arbejdshukommelse": _maskine_obj.arbejdshukommelse, "maskine_type": _maskine_obj.type, "lokation": _maskine_obj.placering.lokation if _maskine_obj.placering else None, "lokale": _maskine_obj.placering.lokale if _maskine_obj.placering else None, "netvaerk": _maskine_obj.placering.netvaerk if _maskine_obj.placering else None, "kommentar": _maskine_obj.kommentar, "ny": False, }) if not Maskine.objects.filter(pk=pk).exists(): messages.error(request, "Den angivet maskine findes ikke.") return redirect('maskiner_view') if not pk: messages.error(request, "Ingen maskine angivet.") return redirect('maskiner_view') if request.method == 'POST' and tjek_rettigheder( request.user, {'hardware_maskine_rediger'}): if 'fortryd' in request.POST: return redirect('maskiner_view') _pk = request.POST['pk'] if 'pk' in request.POST else None _navn = request.POST['navn'].upper( ) if 'navn' in request.POST else None _processor = request.POST[ 'processor'] if 'processor' in request.POST else None _bundkort = request.POST[ 'bundkort'] if 'bundkort' in request.POST else None _arbejdshukommelse = request.POST[ 'arbejdshukommelse'] if 'arbejdshukommelse' in request.POST else None _type = request.POST[ 'maskine_type'] if 'maskine_type' in request.POST else None _lokation = request.POST[ 'lokation'] if 'lokation' in request.POST else None _lokale = request.POST['lokale'] if 'lokale' in request.POST else None _netvaerk = request.POST[ 'netvaerk'] if 'netvaerk' in request.POST else None _kommentar = request.POST.get('kommentar') if request.POST.get( 'kommentar') else '' if _pk: _maskine_obj = None _tjek_navn = False _tjek_arbejdshukommelse = False try: _pk = int(_pk) except ValueError: messages.error(request, f"Den angivet maskine findes ikke.") return redirect('maskiner_view') if Maskine.objects.filter(pk=_pk).exists(): _maskine_obj = Maskine.objects.get(pk=_pk) else: messages.error(request, f"Den angivet maskine findes ikke.") return redirect('maskiner_view') if 'slet' in request.POST and tjek_rettigheder( request.user, {'hardware_maskine_slet'}): messages.warning( request, f"Maskinen '{_maskine_obj.navn}' blev slettet.") _maskine_obj.placering.delete() _maskine_obj.delete() return redirect('maskiner_view') if _navn != '' and Maskine.objects.filter(navn=_navn).exists(): _navn_maskine_obj = Maskine.objects.filter(navn=_navn).first() if _maskine_obj.pk == _navn_maskine_obj.pk: _tjek_navn = True else: _tjek_navn = False messages.error( request, f"En maskine med navnet '{_navn}' findes allerede.") else: _tjek_navn = True if _arbejdshukommelse != '': try: _arbejdshukommelse = int(_arbejdshukommelse) _tjek_arbejdshukommelse = True except ValueError: _tjek_arbejdshukommelse = False messages.error( request, "'Arbejdshukommelse i GB' er ikke et heltal.") else: _arbejdshukommelse = 0 _tjek_arbejdshukommelse = True if not _tjek_navn or not _tjek_arbejdshukommelse: return render( request, 'hardware/maskine.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _pk, "navn": _navn, "processor": _processor, "bundkort": _bundkort, "arbejdshukommelse": _arbejdshukommelse, "type": _type, "lokation": _lokation, "lokale": _lokale, "netvaerk": _netvaerk, "kommentar": _kommentar, "ny": False, }) _maskine_obj.navn = _navn.strip() _maskine_obj.processor = _processor.strip() _maskine_obj.bundkort = _bundkort.strip() _maskine_obj.arbejdshukommelse = _arbejdshukommelse _maskine_obj.type = _type _maskine_obj.placering.lokation = _lokation _maskine_obj.placering.lokale = _lokale _maskine_obj.placering.netvaerk = _netvaerk _maskine_obj.placering.save() _maskine_obj.kommentar = _kommentar _maskine_obj.save() messages.success(request, f"Maskinen '{_maskine_obj.navn}' blev gemt.") return redirect('maskiner_view') if not _pk and tjek_rettigheder(request.user, {'hardware_maskine_opret'}): _maskine_obj = Maskine.objects.create( placering=Placering.objects.create()) messages.success(request, "Ny maskine blev oprettet.") return render( request, 'hardware/maskine.html', { "bruger_rettigheder": rettigheder(request.user), "pk": _maskine_obj.pk, "navn": _maskine_obj.navn, "processor": _maskine_obj.processor, "bundkort": _maskine_obj.bundkort, "arbejdshukommelse": _maskine_obj.arbejdshukommelse, "type": _maskine_obj.type, "lokation": _maskine_obj.placering.lokation if _maskine_obj.placering else None, "lokale": _maskine_obj.placering.lokale if _maskine_obj.placering else None, "netvaerk": _maskine_obj.placering.netvaerk if _maskine_obj.placering else None, "kommentar": _maskine_obj.kommentar, "ny": True, }) return redirect('maskiner_view') return redirect('maskiner_view')