Compare commits

...

2 Commits

Author SHA1 Message Date
Esther Kleinhenz
02adc8fe6d added berechtigungen der user 2018-11-09 16:00:25 +01:00
Esther Kleinhenz
ac66d766c5 added organisation 2018-11-09 08:13:58 +01:00
19 changed files with 209 additions and 137 deletions

@ -36,6 +36,7 @@
\citation{*}
\bibdata{references/References_2}
\bibcite{Bootstrap}{{BA11}{}{{}}{{}}}
\bibcite{Computer}{{Com18}{}{{}}{{}}}
\bibcite{Oracle}{{Coo10}{}{{}}{{}}}
\bibcite{Dixit}{{Dix18}{}{{}}{{}}}
\bibcite{Schlede}{{FMS17}{}{{}}{{}}}
@ -45,8 +46,8 @@
\bibcite{Herzog}{{Her16}{}{{}}{{}}}
\bibcite{King}{{Kin17}{}{{}}{{}}}
\bibcite{Leipner}{{Lei13}{}{{}}{{}}}
\@writefile{toc}{\contentsline {chapter}{Referenzen}{21}{chapter*.14}}
\bibcite{Microsoft}{{Mic18}{}{{}}{{}}}
\@writefile{toc}{\contentsline {chapter}{Referenzen}{19}{chapter*.13}}
\bibcite{Ndukwe}{{Ndu17}{}{{}}{{}}}
\bibcite{Ong}{{Ong18}{}{{}}{{}}}
\bibcite{Otto}{{Ott11}{}{{}}{{}}}

@ -6,6 +6,12 @@ Twitter~Inc Bootstrap~Authors.
\newblock 2011.
\newblock https://github.com/twbs/bootstrap.
\bibitem[Com18]{Computer}
The Computer~Language Company.
\newblock Definition of: user permissions.
\newblock 2018.
\newblock https://www.pcmag.com/encyclopedia/term/58231/user-permissions.
\bibitem[Coo10]{Oracle}
Oracle Cooperation.
\newblock About ldap.

@ -24,6 +24,7 @@ Repeated entry---line 141 of file ../references/References_2.bib
: ,
I'm skipping whatever remains of this entry
Warning--empty journal in Bootstrap
Warning--empty journal in Computer
Warning--empty journal in Oracle
Warning--empty journal in Dixit
Warning--empty journal in Schlede
@ -42,45 +43,45 @@ Warning--empty journal in Shelest
Warning--empty journal in Solutions
Warning--empty journal in Timm
Warning--empty publisher in Weigend
You've used 19 entries,
You've used 20 entries,
2543 wiz_defined-function locations,
666 strings with 7429 characters,
and the built_in function-call counts, 5186 in all, are:
= -- 510
> -- 152
< -- 19
+ -- 39
- -- 38
* -- 251
:= -- 912
add.period$ -- 76
call.type$ -- 19
change.case$ -- 94
chr.to.int$ -- 18
cite$ -- 38
duplicate$ -- 268
empty$ -- 386
format.name$ -- 74
if$ -- 1012
671 strings with 7567 characters,
and the built_in function-call counts, 5457 in all, are:
= -- 537
> -- 160
< -- 20
+ -- 41
- -- 40
* -- 264
:= -- 959
add.period$ -- 80
call.type$ -- 20
change.case$ -- 99
chr.to.int$ -- 19
cite$ -- 40
duplicate$ -- 282
empty$ -- 406
format.name$ -- 78
if$ -- 1065
int.to.chr$ -- 2
int.to.str$ -- 0
missing$ -- 20
newline$ -- 117
num.names$ -- 57
pop$ -- 115
missing$ -- 21
newline$ -- 123
num.names$ -- 60
pop$ -- 121
preamble$ -- 1
purify$ -- 114
purify$ -- 120
quote$ -- 0
skip$ -- 206
skip$ -- 217
stack$ -- 0
substring$ -- 133
substring$ -- 140
swap$ -- 1
text.length$ -- 19
text.prefix$ -- 17
text.length$ -- 20
text.prefix$ -- 18
top$ -- 0
type$ -- 148
warning$ -- 19
while$ -- 38
width$ -- 24
write$ -- 249
type$ -- 156
warning$ -- 20
while$ -- 40
width$ -- 25
write$ -- 262
(There were 3 error messages)

@ -11,5 +11,6 @@
\addvspace {10\p@ }
\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{13}{figure.caption.11}
\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{15}{figure.caption.12}
\contentsline {figure}{\numberline {3.3}{\ignorespaces Datenmodellierung von User und Post\relax }}{16}{figure.caption.13}
\addvspace {10\p@ }
\addvspace {10\p@ }

@ -1,4 +1,4 @@
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 7 NOV 2018 19:35
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 9 NOV 2018 15:56
entering extended mode
\write18 enabled.
file:line:error style messages enabled.
@ -1495,95 +1495,131 @@ Package babel Info: Redefining german shorthand "~
(babel) in language on input line 27.
[13]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 33.
(babel) in language on input line 31.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 33.
(babel) in language on input line 31.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 33.
(babel) in language on input line 31.
Underfull \hbox (badness 10000) in paragraph at lines 34--45
[]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 52.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 52.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 52.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 52.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 52.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 52.
[14]
File: figures/custommodelcode.png Graphic file (type bmp)
<figures/custommodelcode.png>
Underfull \hbox (badness 10000) in paragraph at lines 72--74
[]
File: figures/datamodel.png Graphic file (type bmp)
<figures/datamodel.png>
LaTeX Warning: `!h' float specifier changed to `!ht'.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 66.
(babel) in language on input line 90.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 66.
(babel) in language on input line 90.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 66.
(babel) in language on input line 90.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 66.
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 66.
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 66.
[14]
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 81.
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 81.
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 81.
Overfull \hbox (9.91238pt too wide) in paragraph at lines 84--85
(babel) in language on input line 92.
[15]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 92.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 92.
[16]
Overfull \hbox (9.91238pt too wide) in paragraph at lines 93--94
[]\T1/aer/m/n/12 Ein Django-Projekt bil-det be-reits beim Ein-rich-ten, \T1/aer/m/it/12 per De-fault\T1/aer/m/n/12 , ei-ne Administrator-
[]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 87.
(babel) in language on input line 96.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 87.
(babel) in language on input line 96.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 87.
(babel) in language on input line 96.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 91.
(babel) in language on input line 106.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 91.
(babel) in language on input line 106.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 91.
(babel) in language on input line 106.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 91.
(babel) in language on input line 109.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 91.
(babel) in language on input line 109.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 91.
[15]
(babel) in language on input line 109.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 91.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 91.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 91.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 94.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 94.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 94.
(babel) in language on input line 114.
[17]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 99.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 99.
(babel) in language on input line 114.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 99.
(babel) in language on input line 114.
Overfull \hbox (1.12642pt too wide) in paragraph at lines 100--101
Overfull \hbox (1.12642pt too wide) in paragraph at lines 115--116
\T1/aer/m/n/12 Tags als ein-ge-logg-ter User abon-nie-ren und ver-wal-ten Front-end und Admin-Backend?
[]
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 102.
(babel) in language on input line 117.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 102.
(babel) in language on input line 117.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 102.
(babel) in language on input line 117.
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 105.
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "|
(babel) in language on input line 105.
(babel) in language on input line 120.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 105.
(babel) in language on input line 120.
)
Package babel Info: Redefining german shorthand "f
(babel) in language on input line 59.
@ -1597,7 +1633,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 59.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 59.
[16]
[18]
\openout2 = `chapters/ergebnis.aux'.
(./chapters/ergebnis.tex
@ -1631,7 +1667,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 60.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 60.
[17
[19
@ -1663,7 +1699,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 62.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 62.
[18
[20
@ -1683,18 +1719,18 @@ Underfull \hbox (badness 4316) in paragraph at lines 4--8
[]
Underfull \hbox (badness 10000) in paragraph at lines 10--14
Underfull \hbox (badness 10000) in paragraph at lines 16--20
[]\T1/aer/m/n/12 Oracle Coope-ra-ti-on. About ldap. 2010.
[]
Underfull \hbox (badness 10000) in paragraph at lines 16--21
Underfull \hbox (badness 10000) in paragraph at lines 22--27
\T1/aer/m/n/12 https://www.datacamp.com/community/tutorials/pep8-tutorial-python-
[]
Missing character: There is no in font aer12!
Underfull \hbox (badness 2717) in paragraph at lines 56--61
Underfull \hbox (badness 2717) in paragraph at lines 62--67
[]\T1/aer/m/n/12 Adam King. Djan-go midd-le-wa-res and the re-quest/-re-spon-se cy-
[]
@ -1713,49 +1749,49 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 75.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 75.
[19
[21
]
Missing character: There is no in font aer12!
Underfull \hbox (badness 10000) in paragraph at lines 77--83
Underfull \hbox (badness 10000) in paragraph at lines 83--89
\T1/aer/m/n/12 medium-com-nnennandukwe-python-is-the-back-end-programming-
[]
Underfull \hbox (badness 10000) in paragraph at lines 85--89
Underfull \hbox (badness 10000) in paragraph at lines 91--95
[]\T1/aer/m/n/12 Selwin Ong. django-post_office git re-po-si-to-ry. 2018.
[]
Underfull \hbox (badness 10000) in paragraph at lines 91--96
Underfull \hbox (badness 10000) in paragraph at lines 97--102
[]\T1/aer/m/n/12 Mark Ot-to. Boot-strap from twit-ter. 2011.
[]
Underfull \hbox (badness 10000) in paragraph at lines 91--96
Underfull \hbox (badness 10000) in paragraph at lines 97--102
\T1/aer/m/n/12 https://blog.twitter.com/developer/en_us/a/2011/bootstrap-
[]
Underfull \hbox (badness 10000) in paragraph at lines 98--102
Underfull \hbox (badness 10000) in paragraph at lines 104--108
[]\T1/aer/m/n/12 Shabda. Un-der-stan-ding de-co-ra-tors. 2009.
[]
Underfull \hbox (badness 10000) in paragraph at lines 104--110
Underfull \hbox (badness 10000) in paragraph at lines 110--116
[]\T1/aer/m/n/12 Alexy She-lest. Mo-del view con-trol-ler, mo-del view pre-
[]
Underfull \hbox (badness 10000) in paragraph at lines 104--110
Underfull \hbox (badness 10000) in paragraph at lines 110--116
\T1/aer/m/n/12 sen-ter, and mo-del view view-mo-del de-sign pat-terns. 2009.
[]
Underfull \hbox (badness 10000) in paragraph at lines 104--110
Underfull \hbox (badness 10000) in paragraph at lines 110--116
\T1/aer/m/n/12 https://www.codeproject.com/Articles/42830/Model-View-Controller-
[]
@ -1773,7 +1809,7 @@ Package babel Info: Redefining german shorthand "|
(babel) in language on input line 77.
Package babel Info: Redefining german shorthand "~
(babel) in language on input line 77.
[20]
[22]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 77.
(/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.aux (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/titlepage/titlepage.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/abstract/abstract.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/einleitung.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/framework.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/prototyp.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ergebnis.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/ausblick.aux) (/Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/chapters/fazit.aux))
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 77.
@ -1788,12 +1824,12 @@ Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 77.
)
(\end occurred when \ifnum on line 5 was incomplete)
Here is how much of TeX's memory you used:
26605 strings out of 492970
477215 string characters out of 6133939
547158 words of memory out of 5000000
30216 multiletter control sequences out of 15000+600000
26612 strings out of 492970
477352 string characters out of 6133939
547177 words of memory out of 5000000
30222 multiletter control sequences out of 15000+600000
555998 words of font info for 62 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
58i,12n,50p,10437b,943s stack positions out of 5000i,500n,10000p,200000b,80000s
58i,12n,50p,10437b,958s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (25 pages).
Output written on /Users/Esthi/thesis_ek/doc/bachelorarbeit_EstherKleinhenz/.texpadtmp/bachelorabeit_EstherKleinhenz.pdf (27 pages).

@ -27,4 +27,4 @@
\BOOKMARK [0][-]{chapter.4}{Ergebnis}{}% 27
\BOOKMARK [1][-]{subsection.4.0.1}{Evaluierung}{chapter.4}% 28
\BOOKMARK [0][-]{chapter.5}{Zusammenfassung\040und\040Ausblick}{}% 29
\BOOKMARK [0][-]{chapter*.13}{Referenzen}{}% 30
\BOOKMARK [0][-]{chapter*.14}{Referenzen}{}% 30

@ -19,14 +19,14 @@
\contentsline {section}{\numberline {3.1}Forschungsdesign}{12}{section.3.1}
\contentsline {section}{\numberline {3.2}Organisation}{13}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{14}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{15}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{16}{subsection.3.2.3}
\contentsline {section}{\numberline {3.3}Funktionen}{16}{section.3.3}
\contentsline {subsection}{\numberline {3.3.1}Verwalten}{16}{subsection.3.3.1}
\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{16}{subsection.3.3.2}
\contentsline {subsection}{\numberline {3.3.3}Filtern}{16}{subsection.3.3.3}
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{16}{subsection.3.3.4}
\contentsline {chapter}{\numberline {4}Ergebnis}{17}{chapter.4}
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{17}{subsection.4.0.1}
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{18}{chapter.5}
\contentsline {chapter}{Referenzen}{19}{chapter*.13}
\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{16}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{17}{subsection.3.2.3}
\contentsline {section}{\numberline {3.3}Funktionen}{17}{section.3.3}
\contentsline {subsection}{\numberline {3.3.1}Verwalten}{18}{subsection.3.3.1}
\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{18}{subsection.3.3.2}
\contentsline {subsection}{\numberline {3.3.3}Filtern}{18}{subsection.3.3.3}
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{18}{subsection.3.3.4}
\contentsline {chapter}{\numberline {4}Ergebnis}{19}{chapter.4}
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{19}{subsection.4.0.1}
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{20}{chapter.5}
\contentsline {chapter}{Referenzen}{21}{chapter*.14}

@ -1,7 +1,7 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@setckpt{chapters/ausblick}{
\setcounter{page}{18}
\setcounter{page}{20}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

@ -1,12 +1,12 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{17}{chapter.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{19}{chapter.4}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:ergebnis}{{4}{17}{Ergebnis}{chapter.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{17}{subsection.4.0.1}}
\newlabel{ch:ergebnis}{{4}{19}{Ergebnis}{chapter.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{19}{subsection.4.0.1}}
\@setckpt{chapters/ergebnis}{
\setcounter{page}{18}
\setcounter{page}{20}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

@ -1,11 +1,11 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{18}{chapter.5}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{20}{chapter.5}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:zusammenfassung}{{5}{18}{Zusammenfassung und Ausblick}{chapter.5}{}}
\newlabel{ch:zusammenfassung}{{5}{20}{Zusammenfassung und Ausblick}{chapter.5}{}}
\@setckpt{chapters/fazit}{
\setcounter{page}{19}
\setcounter{page}{21}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}

@ -9,15 +9,16 @@
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Organisation}{13}{section.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{14}{subsection.3.2.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{15}{figure.caption.12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{15}{subsection.3.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{16}{subsection.3.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Funktionen}{16}{section.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwalten}{16}{subsection.3.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{16}{subsection.3.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern}{16}{subsection.3.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{16}{subsection.3.3.4}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Datenmodellierung von User und Post\relax }}{16}{figure.caption.13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{16}{subsection.3.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{17}{subsection.3.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Funktionen}{17}{section.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwalten}{18}{subsection.3.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{18}{subsection.3.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern}{18}{subsection.3.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{18}{subsection.3.3.4}}
\@setckpt{chapters/prototyp}{
\setcounter{page}{17}
\setcounter{page}{19}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@ -32,7 +33,7 @@
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{2}
\setcounter{figure}{3}
\setcounter{table}{0}
\setcounter{float@type}{8}
\setcounter{parentequation}{0}

@ -23,11 +23,9 @@ Zum Entwickeln des Prototypen wird die Open-Source- Entwicklungsumgebung Visual
\item Python Extension Pack (Django Code-Vervollständigung)
\end{itemize}
Der entwickelte Syntax wird regelmä"sig auf das hochschulinterne Git-Repository geladen. Hier kann man mit Hilfe der verwendeten IDE bei der Überarbeitung im sogenannten \textit {Working-Tree} die Änderungen visuell einsehen und wenn nötig bearbeiten. Es wird ausschlie"slich auf den Master-Branch gepusht, da nur ein Entwickler an dem Prototyp tätig ist. Lediglich zum Testen experimenteller Bibliotheken werden eine Branches angelegt und diese, falls Sie sich als hilfreich erweisen, in den Master-Branch gemerged.---
Der entwickelte Syntax wird regelmä"sig auf das hochschulinterne Git-Repository geladen. Hier kann man mit Hilfe der verwendeten IDE bei der Überarbeitung im sogenannten \textit {Working-Tree} die Änderungen visuell einsehen und wenn nötig bearbeiten. Es wird ausschlie"slich auf den Master-Branch gepusht, da nur ein Entwickler an dem Prototyp tätig ist. Lediglich zum Testen experimenteller Bibliotheken werden neue Branches angelegt und diese, falls Sie sich als hilfreich erweisen, mit dem Master-Branch fusionieren.
Um einen generellen Einblick in den Aufbau eines Django-Projektes zu erlangen wird dies im folgenden genauer beschrieben.
Grundlegender Aufbau der Website, Verwaltung der Daten evlt nochmal auf Taggable-Manager (ManyToMany) ...
Um einen Einblick in den Aufbau eines Django-Projektes zu erlangen wird dies im folgenden genauer beschrieben. Die unterste Projektebene wird durch die manage.py-Datei gebildet. Sie wird unter Anderem genutzt um den lokalen Server starten zu können. In der Ebene darüber findet sich im Ordner \glqq mysite\grqq\ die Datei settings.py. Hier werden die allgemeinen Einstellungen der Website vorgenommen, wie zum Beispiel das Integrieren der Erweiterungen und der Pfad zu den hinterlegten Templates. Au"serdem ist die urls.py dort zu finden, deren Funktion bereits im Kapitel Django erläutert wurde. Die \_\_init\_\_.py und wsgi.py sind trivial und deshalb wird hier nicht weiter darauf eingegangen. Im Ordner \glqq thisisenv\grqq\ sind alle Bibliotheken und Add-on's der virtuellen Umgebung hinterlegt. Der Fokus dieser Arbeit liegt im Ordner \glqq application\grqq. Hier sind die Datenbank-Migrationen, die Static-Files wie bootstrap und css, und alle Templates abgelegt. Zudem befindet sich hier die Logik des Prototypen, auf die im Kapitel \glqq Funktionen\grqq\ weiter eingegangen wird.
\subsection{Datenmodellierung}
@ -43,15 +41,18 @@ werden die neun Tabellen der Modelle erstellt. Um diese dann auch anwenden zu k
\noindent\hspace*{10mm}%
\$ python3 manage.py migrate
\\
darauffolgend ebenso in die Kommandozeile eingegeben werden.
darauffolgend ebenso in die Kommandozeile eingegeben werden.\\
\textbf{UserModel:}
\begin{addmargin}[25pt]{0pt}
Hierbei ist das Authentifizierungssystem von Django mit einem \textit{UserModel} bereits angelegt. Dies muss für den Prototyp um das Feld \glqq tags \grqq erweitert werden, sodass ein Benutzer folgende Felder aufweist (vgl. [Fou18a]):
Hierbei ist das Authentifizierungssystem von Django mit einem \textit{UserModel} bereits angelegt. Dies muss für den Prototyp um das Feld \glqq tags \grqq\ erweitert werden, sodass ein Benutzer folgende Felder aufweist (vgl. [Fou18a]):
\begin{itemize}
\item username, fist\_name, last\_name, email, groups, user\_permissions, is\_staff, is\_active, is\_superuser, last\_login, date\_joined, tags
\end{itemize}
In models.py ist der \textit{CustomUser} dafür verantwortlich das neue Feld mit dem \textit{Default-User} zu verknüpfen. Durch das \textit{OneToOneField} (siehe Abbildung 3.2.) wird die Verbindung zum schon bestehenden Modell hergestellt. \textit{OneToOne} bildet eine einzigartige Verbindung von zwei Objekten, sodass der Rückgabewert nur aus einem Objekt besteht (vgl. [Fou18a]). Das hei"st, dass bei dieser Verbindung keine Rekursiven, also ---blaaaa oder \textit{lazy} Beziehungen möglich sind um Konflikte bei der Authentifizierung zu vermeiden. Dies ist die übliche Vorgehensweise um mit einem Primärschlüssel das Default-Model zu erweitern.
Das Feld \textit{groups} wird in dieser Arbeit nicht verwendet und deshalb im Folgenden ignoriert.
In models.py ist der \textit{CustomUser} dafür verantwortlich das neue Feld mit dem \textit{Default-User} zu verknüpfen. Durch das \textit{OneToOneField} (siehe Abbildung 3.2.) wird die Verbindung zum schon bestehenden Modell hergestellt. \textit{OneToOne} bildet eine einzigartige Zuordnung von zwei Objekten, sodass der Rückgabewert nur aus einem Objekt besteht (vgl. [Fou18a]). Das hei"st, dass hier keine Rekursiven, also auf sich selbst verlinkende oder \textit{lazy} Beziehungen möglich sind um Konflikte bei der Authentifizierung zu vermeiden. Dies ist die übliche Vorgehensweise um mit einem Primärschlüssel das Default-Model zu erweitern.
\begin{figure}[!h]
\centering
\includegraphics[width=1\textwidth]{figures/custommodelcode}
@ -69,23 +70,37 @@ Das \textit{PostModel} beschreibt alle Felder die ein Post enthalten kann. Basie
\item author, title, text, created\_date, published\_date, tags
\end{itemize}
Der Autor ist durch einen \textit{ForeignKey} mit dem \textit{UserModel} verbunden. Diese sogenannte \textit{ManyToOne} Verbindung reicht hier aus um einem Post den Autor, also dem eingeloggten User, zuzuweisen. Title ist ein \textit{CharField} und wird mit einer Zeichenbegrenzung festgelegt. Der Text hingegen kann eine beliebige Menge an Zeichen enthalten und wir deshalb als \textit{TextField} deklariert. Erstellungsdatum und Publikation sind beides \textit{DateTimeField}s. Ersteres muss vom Ersteller angegeben werden, Zweiteres kann zunächst offen gelassen werden durch die Zusatzangabe \glqq null=True\grqq. Ein weiteres Feld tags wird hinzugefügt um den Posts unabhängig von den Usern Tags zuordnen zu können.
\\
\end{addmargin}
\textbf{Gesamtmodellierung:}
\begin{addmargin}[25pt]{0pt}
Die Abbildung 3.3. zeigt die Modellierung der Tabelle \glqq User\grqq\ und \glqq Post\grqq. Au"serdem verdeutlicht es die Erweiterung des User-Modells von Django mit dem in der Applikation angelegtem CustomUser. Die im User vorkommenden booleschen Felder werden im Kapitel Berechtigung der User genauer erörtert.
\begin{figure}[!h]
\centering
\includegraphics[width=0.9\textwidth]{figures/datamodel}
\caption{Datenmodellierung von User und Post}
\hfill
\end{figure}
\end{addmargin}
\subsection{Verwaltung im Administrator-Back-end}
In diesem Kapitel wird beschrieben wie das Administrations-back-end genutzt werden kann. Es ist jedoch zu beachten, dass die Applikation vorwiegend von Dozenten und Angestellten der Hochschule ohne Administratorrechte verwendet werden soll. Die gestaffelten Berechtigungen werden im Kapitel \glqq Berechtigung der User \grqq genauer beschreiben.
In diesem Kapitel wird beschrieben wie das Administrations-back-end genutzt werden kann. Es ist jedoch zu beachten, dass die Applikation vorwiegend von Dozenten und Angestellten der Hochschule ohne Administratorrechte verwendet werden soll. Die gestaffelten Berechtigungen werden im Kapitel \glqq Berechtigung der User \grqq\ genauer beschreiben.
Ein Django-Projekt bildet bereits beim Einrichten, \textit{per Default}, eine Administrator-Oberfläche um die Inhalte der Website kontrollieren zu können. Nach der Migration von den oben genannten Modellen wird diese erweitert. Nich zu vergessen sind die externen Tabellen der installierten Add-on's, die nach der Migration das Back-end expandieren.
\subsection{Berechtigung der User}
Welche Berechtigungen gibt es im Prototyp, welche werden vom Active Directory übernommen?
Im Allgemeinen verwendet man Berechtigungen um Benutzern Zugang zu bestimmten Resourcen in einem Netzwerk einzuräumen. Au"serdem bestimmt es die Arte des Zugangs, also ob der User die Resourcen nur lesen oder auch verändern oder löschen darf(vgl. [Com18]). Die Rechte werden meist einzelnen Individuen oder einer Gruppe zugeordnet.
Das gestaffeltes Berechtigungsmanagement ist im Prototyp notwendig um den Umgang mit Informationen so sicher wie möglich zu gestalten und um die Nachhaltigkeit dieser zu bewahren. Des Weiteren soll der Prototyp als Vorlage für die Erweiterung der Hochschulwebsite dienen und daher ist eine ähnliche Verteilung der Zugangsberechtigungen sinnvoll.
Studenten sollen zunächst Informationen weder einpflegen, noch editieren dürfen. Die einzigen Änderungen die sie vornehmen können sind auf Ihre eigene Datenbank fokussiert. Das Hinzufügen von Tags um die damit verbunden Posts auf dem persönlichen Dashboard zu sehen wird ihnen gewährleistet. Dies soll verhindern, dass Informationen nicht zu leichtfertig geändert oder gelöscht werden.
Dozenten und Angestellte der Hochschule sind dazu berechtigt, Posts zu erstellen, zu editieren und wieder zu löschen. Zudem können sie, wie Studenten, Tags abonnieren und ebenso das persönliche Dashboard gestalten. Das Einloggen in die Administratoroberfläche kann vorgenommen werden, jedoch sind der Gruppe noch keinerlei Rechte zugewiesen. Möchte man dies ändern, kann man das von Django bereitgestellte Feld \glqq User Permissions\grqq\ im Admin-back-end unter Users, und dem Namen der zu ändernden Person, die gewünschte Berechtigung erteilen.
\section{Funktionen}

Binary file not shown.

Binary file not shown.

After

(image error) Size: 192 KiB

@ -152,6 +152,12 @@
note = "https://marketplace.visualstudio.com/"
}
@article{Computer,
author = "The Computer Language Company",
title = "Definition of: user permissions",
year = "2018",
note = "https://www.pcmag.com/encyclopedia/term/58231/user-permissions"
}

@ -566,3 +566,8 @@
[31/Oct/2018 18:23:23] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:23:23] INFO [mysite:156] tehere
[04/Nov/2018 14:50:11] INFO [mysite:186] None
[09/Nov/2018 08:16:30] INFO [mysite:59] <QuerySet [<Post: Hi there>, <Post: Bavaria>, <Post: test again>]>
[09/Nov/2018 08:16:32] INFO [mysite:59] <QuerySet [<Post: Hi there>]>
[09/Nov/2018 08:16:34] INFO [mysite:59] <QuerySet [<Post: Hi there>, <Post: test again>]>
[09/Nov/2018 08:16:53] INFO [mysite:187] None
[09/Nov/2018 15:25:20] INFO [mysite:187] None

BIN
my_project_visualized.png Normal file

Binary file not shown.

After

(image error) Size: 557 KiB