Files
@ r22:22d7bf985c6c
Branch filter:
Location: public/ws-vacation/doc/README-de.html
r22:22d7bf985c6c
13.7 KiB
text/html
doc/README.html: documentation update.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.8.1: http://docutils.sourceforge.net/" />
<title>Wiedenmann Vacation</title>
<link rel="stylesheet" href="../css/basic.css" type="text/css" />
<link rel="stylesheet" href="../css/pygments.css" type="text/css" />
<link rel="stylesheet" href="../css/ws-project.css" type="text/css" />
</head>
<body>
<div class="document" id="wiedenmann-vacation">
<h1 class="title">Wiedenmann Vacation</h1>
<h2 class="subtitle" id="web-front-end-zur-verwaltung-von-vacation-1">Web Front-End zur Verwaltung von vacation(1)</h2>
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
<tbody valign="top">
<tr class="field"><th class="docinfo-name">Author:</th><td class="field-body"><a class="reference external" href="mailto:sw%40wiedenmann-seile.de">Wolfgang Scherer</a></td>
</tr>
</tbody>
</table>
<!-- -*- coding: utf-8 -*- -->
<!-- Copyright (C) 2012, Wolfgang Scherer, <Wolfgang.Scherer at gmx.de> -->
<!-- Sponsored by WIEDENMANN SEILE GMBH, http://www.wiedenmannseile.de -->
<!-- -->
<!-- This file is part of Wiedenmann Vacation. -->
<!-- -->
<!-- Permission is granted to copy, distribute and/or modify this -->
<!-- document under the terms of the GNU Free Documentation License, -->
<!-- Version 1.3 or any later version published by the Free Software -->
<!-- Foundation; with no Invariant Sections, no Front-Cover Texts, and -->
<!-- no Back-Cover Texts. A copy of the license is included in the main -->
<!-- documentation of Wiedenmann Vacation. -->
<!-- (progn (forward-line 1)(snip-insert-mode "rst_t.inline-comments" t)) -->
<!-- inline comments (with ws_docutils) -->
<div class="contents topic" id="inhalt">
<p class="topic-title first">Inhalt</p>
<ul class="simple">
<li><a class="reference internal" href="#installation" id="id1">Installation</a></li>
<li><a class="reference internal" href="#benutzerverwaltung" id="id2">Benutzerverwaltung</a></li>
<li><a class="reference internal" href="#anpassung" id="id3">Anpassung</a></li>
</ul>
</div>
<div class="section" id="installation">
<h1><a class="toc-backref" href="#id1">Installation</a></h1>
<ol class="arabic">
<li><p class="first">Quellcode von <a class="reference external" href="https://bitbucket.org/wolfmanx/ws-vacation">ws-vacation</a> holen und das Programm irgendwo auf
der Festplatte ablegen:</p>
<pre class="literal-block">
>>> hg clone https://bitbucket.org/wolfmanx/ws-vacation
</pre>
</li>
<li><p class="first">Alias <cite>/vacation</cite> in <cite>lib/ws-vacation.conf.in</cite> ändern, falls
gewünscht.</p>
</li>
<li><p class="first">Folgende Kommandos ausführen, um die fertigen Dateien zu erzeugen:</p>
<pre class="doctest-block">
>>> make clean
>>> make
</pre>
<p>Damit wird das Installationverzeichnis an den notwendigen Stellen
eingetragen.</p>
</li>
<li><p class="first">Datei <cite>lib/ws-vacation.conf</cite> nach <cite>/etc/apache2/conf.d/</cite> kopieren.</p>
<pre class="doctest-block">
>>> sudo cp lib/ws-vacation.conf /etc/apache2/conf.d/
</pre>
</li>
<li><p class="first">Apache server neu laden:</p>
<pre class="doctest-block">
>>> sudo /etc/init.d/apache2 reload.
</pre>
</li>
<li><p class="first">Damit der WWW-Prozess das vacation(1)-Kommando als beliebiger
Benutzer (außer <cite>root</cite>) ausführen kann, muss die Datei
<cite>lib/ws-vacation-sudo</cite> in das Verzeichnis <cite>/etc/sudoers.d</cite> kopiert
werden (ubuntu):</p>
<pre class="doctest-block">
>>> sudo cp lib/ws-vacation-sudo /etc/sudoers.d/ws-vacation-sudo
>>> sudo chmod 0440 /etc/sudoers.d/ws-vacation-sudo
</pre>
<p>oder an die Datei <cite>/etc/sudoers</cite> angehängt werden (SuSE):</p>
<pre class="doctest-block">
>>> cat lib/ws-vacation-sudo | sudo tee /etc/sudoers
</pre>
</li>
</ol>
</div>
<div class="section" id="benutzerverwaltung">
<h1><a class="toc-backref" href="#id2">Benutzerverwaltung</a></h1>
<p>Für die Erstellung der Benutzer und Passwörter, im Unterverzeichnis
<cite>lib</cite> als <cite>root</cite> folgendes ausführen:</p>
<pre class="doctest-block">
>>> sudo php gen_htpasswd.php
</pre>
<div class="note">
<p class="first admonition-title">Bemerkung</p>
<p class="last">Wenn neue Benutzer auf dem System angelegt werden, muss das
entsprechend wiederholt werden.</p>
</div>
<p></p>
</div>
<div class="section" id="anpassung">
<h1><a class="toc-backref" href="#id3">Anpassung</a></h1>
<p>In der Datei <cite>lib/config.php</cite> befinden sich neben anderen
Grundeinstellungen:</p>
<ul class="simple">
<li>$ALLOWED_USERS: Immer erlaubte Benutzer.</li>
<li>$INVALID_USERS: Ungültige Benutzer.</li>
<li>$ADMIN_USERS: Administratoren.</li>
</ul>
<p>Die Vorlage für einen neuen Abwesenheitstext ist in der Datei
<cite>lib/language.php</cite> zu finden.</p>
<p>HTML Kopf- und Fußabschnitt sind in der Datei <cite>lib/templates.php</cite>.</p>
<p><strong>Copyright</strong></p>
<p>Copyright (C) 2012, Wolfgang Scherer, <<a class="reference external" href="mailto:sw%40wiedenmann-seile.de">sw<span>@</span>wiedenmann-seile<span>.</span>de</a>>.
Sponsored by <a class="reference external" href="http://www.wiedenmannseile.de">Wiedenmann-Seile GmbH</a>.</p>
<p>Siehe Abschnitt <a class="reference external" href="README-GFDL.html">GNU Free Documentation License</a> für Nutzungsbedingungen der Dokumentation.</p>
<p>Siehe Abschnitt <a class="reference external" href="README-COPYING.html">GNU General Public License</a> für Nutzungsbedingungen des Programms.</p>
<!-- ================================================== -->
<!-- :rem:`|||:sec:|||`\ END -->
<!-- ================================================== -->
<!-- -->
<!-- :ide-menu: Emacs IDE Main Menu - Buffer @BUFFER@ -->
<!-- . M-x `eIDE-menu' ()(eIDE-menu "z") -->
<!-- :ide: DELIM: SNIPPETS (ABOUT) |q|<- SYM ->||, ||<- SYM ->||, @| SYM @ -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "||<-") (cons "->||" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "||<-") (cons "->||" nil)) t) (setq symbol-tag-match-rx "sn[i]p") (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons nil "@|") (cons "@" nil))))) -->
<!-- :ide: DELIM: SNIPPETS (DOC) ||<- SYM ->||, |: SYM :|, ` SYM ` -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "|:") (cons ":|" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "||<-") (cons "->||" nil)) t) (setq symbol-tag-match-rx "sn[i]p") (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons "\\(\\`\\|[^\\]\\)" "`") (cons "`" nil))))) -->
<!-- :ide: DELIM: SNIPPETS (SNIP DOC) ||<- SYM ->||, |: SYM :|, @ SYM @ -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "|:") (cons ":|" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "||<-") (cons "->||" nil)) t) (setq symbol-tag-match-rx "sn[i]p") (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons nil "@") (cons "@" nil))))) -->
<!-- :ide: DELIM: SNIPPETS (FILLME) ||<- SYM ->||, :: SYM ::, @ SYM @ -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "::") (cons "::" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "||<-") (cons "->||" nil)) t) (setq symbol-tag-match-rx "sn[i]p") (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons nil "@") (cons "@" nil))))) -->
<!-- :ide: DELIM: SNIPPETS (SUBST) ||<- SYM ->||, @ SYM @, @ SYM @ -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "@") (cons "@" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "||<-") (cons "->||" nil)) t) (setq symbol-tag-match-rx "sn[i]p") (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons "[^\\]" "`") (cons "`" nil))))) -->
<!-- :ide: +#- -->
<!-- . Snippet Delimiter Sets () -->
<!-- :ide: DELIM: ReST (links) ` SYM `_, .. _` SYM `, ` SYM ` -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons "[^\\]" "`") (cons "`_" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil ".. _`") (cons "`:" nil)) t) (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons "\\(\\`\\|[^\\]\\)" "`") (cons "`" nil))))) -->
<!-- :ide: DELIM: STANDARD (GNU quoting) |: SYM :|, :: SYM ::, ` SYM ' -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "::") (cons "::" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "|:") (cons ":|" nil)) t) (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons nil "`") (cons "'" nil))))) -->
<!-- :ide: DELIM: STANDARD (ReST quoting) |: SYM :|, :: SYM ::, ` SYM ` -->
<!-- . (let nil (symbol-tag-normalize-delimiter (cons (cons nil "::") (cons "::" nil)) t) (symbol-tag-switch-delimiter-sets) (symbol-tag-normalize-delimiter (cons (cons nil "|:") (cons ":|" nil)) t) (setq symbol-tag-enclose-delimiter-set (symbol-tag-normalize-delimiter (cons (cons "[^\\]" "`") (cons "`" nil))))) -->
<!-- :ide: +#- -->
<!-- . Delimiter Sets () -->
<!-- :ide: COMPILE: render reST as LaTeX -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2latex.py - -traceback | tee " fn ".tex"))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as MAN -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2man.py - -traceback "))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as TXT (via MAN) -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2man.py - -traceback | man -l -"))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as ODT - -strip-comments -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2odt.py - -traceback - -strip-comments | cat >" fn ".odt "))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as LaTeX, compile PDF and view with gv -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2latex.py - -traceback | tee " fn ".tex && pdflatex '\\nonstopmode\\input " fn ".tex' && gv " fn ".pdf"))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as PDF -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2pdf -e ws_docutils.raw_role >" fn ".pdf"))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as HTML -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " " fp " | ws_rst2html.py - -traceback - -cloak-email-addresses | tee " fn ".html "))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; cat " args)))) -->
<!-- :ide: COMPILE: render reST as pseudoXML -->
<!-- . (let* ((fp (buffer-file-name)) (fn (file-name-nondirectory fp))) (save-match-data (if (string-match-t "[.][^.]*$" fn) (setq fn (replace-match "" nil t fn)))) (let ((args (concat " - -traceback " fp " 2>&1 #| tee " fn ".pxml"))) (save-buffer) (compile (concat "PATH=\".:$PATH\"; ws_rst2pseudoxml.py " args)))) -->
<!-- :ide: +#- -->
<!-- . Process () -->
<!-- :ide: QUO: ~~ Subsubsection ~~ -->
<!-- . (insert "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\:rem\:`|\:sec\:|`\\ ::fillme\::\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" ) -->
<!-- :ide: QUO: - - Subsection - - -->
<!-- . (insert "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\:rem\:`||\:sec\:||`\\ ::fillme\::\n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n" ) -->
<!-- :ide: QUO: == Section == -->
<!-- . (insert "==================================================\n\:rem\:`|||\:sec\:|||`\\ ::fillme\::\n==================================================\n" ) -->
<!-- :ide: +#- -->
<!-- . Sections () -->
<!-- :ide: MENU-OUTLINE: `|||:section:|||' (default) -->
<!-- . (x-eIDE-menu-outline "sec" '("|:" ":|") (cons (cons "^" ".. ") (cons nil nil)) "\\(_`[^`\n]+`\\|\\[[^]\n]+\\]\\|[|][^|\n]+[|]\\|[^:\n]+::\\)") -->
<!-- -->
<!-- Local Variables: -->
<!-- mode: rst -->
<!-- snip-mode: rst -->
<!-- truncate-lines: t -->
<!-- symbol-tag-symbol-regexp: "[-0-9A-Za-z_#]\\([-0-9A-Za-z_. ]*[-0-9A-Za-z_]\\|\\)" -->
<!-- symbol-tag-auto-comment-mode: nil -->
<!-- symbol-tag-srx-is-safe-with-nil-delimiters: nil -->
<!-- End: -->
</div>
</div>
</body>
</html>
|