]> git.plutz.net Git - confetti/blobdiff - courses/new_course.sh
enable set up of new course
[confetti] / courses / new_course.sh
index 4f97d4aadc94d3144135ad6854efeecd1871d1e0..c262b790bdbf279ea5ac44229e44e2189fedeb31 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/zsh
 
-# Copyright 2014 Paul Hänsch
+# Copyright 2014, 2021 Paul Hänsch
 #
 # This file is part of Confetti.
 # 
 # You should have received a copy of the GNU Affero General Public License
 # along with Confetti.  If not, see <http://www.gnu.org/licenses/>. 
 
-cgi_post
+locktimeout=900
+. "$_EXEC"/session_lock.sh
 
-uid=$(uuidgenerator)
+uid="$(timeid)$(randomid)"  # 32 Octets UID, starting with timestamp
 course="${uid}.ics"
 
-tzid=$(cat /etc/timezone)
-tstamp=$(TZ="$tzid" date +%Y%m%dT%H%M%S)
+tzid="$(cat /etc/timezone)"
+tstamp="$(TZ="$tzid" date +%Y%m%dT%H%M%S)"
 
-tempfile="$_DATA/temp/$course"
+coursefile="$_DATA/ical/$course"
 
-cat >"$tempfile" <<EOF
-BEGIN:VCALENDAR
-VERSION:2.0
-PRODID:Berlin RAW Confetti
-BEGIN:VEVENT
-UID:$uid
-DTSTAMP:TZID=${tzid}:${tstamp}
-DTSTART:
-DURATION:
-RRULE:
-SUMMARY:
-COMMENT:
-END:VEVENT
-END:VCARD
-EOF
-
-echo -n "Location: ?p=courses&edit=$course\n\n"
+if tempfile="$(SLOCK "$coursefile")"; then
+  cat >"$tempfile" <<-EOF
+       BEGIN:VCALENDAR
+       VERSION:2.0
+       PRODID:Berlin RAW Confetti
+       BEGIN:VEVENT
+       UID:$uid
+       DTSTAMP:TZID=${tzid}:${tstamp}
+       DTSTART:
+       DURATION:
+       RRULE:
+       SUMMARY:
+       COMMENT:
+       END:VEVENT
+       END:VCARD
+       EOF
+  REDIRECT "/courses/?e=${course}"
+else
+  SET_COOKIE session message="EDITLOCK"
+  REDIRECT "/courses/"
+fi