[TYPO3-german] Cal mit FE-Editing und User-Gruppen-Berechtigung
Michael Schumann
mulix at gmx.de
Thu Nov 6 20:20:24 CET 2014
Hallo Liste,
ich sitze an der Ext. Cal und versuche die Berechtigungen für das
Frontend-Editing korrekt zu setzen. Aber irgendwie komme ich da nicht
weiter.
Ziel ist das die User der Gruppen "Vereinsleitung" und "Vereinsverwaltung"
alle Termine bearbeiten und löschen darf. Die User der Gruppe
"Abteilungsleiter" aber nur jeweils Ihre eigenen Löschen und bearbeiten
darf.
Erstellen darf jeder der drei Gruppen, wobei die Gruppe "Abteilungsleiter"
als Kalenderterminveranstalter nur sich auswählen kann und die Gruppen
"Vereinsleitung" und "Vereinsverwaltung" einen Termin quasi jeder Abteilung
zuordnen darf. Das geht auch soweit da für alle Abteilungen
Kalenderterminveranstalter angelegt sind welche als Gemeinsame Benutzer die
"Vereinsleitung", "Vereinsverwaltung" sowie die passende Abteilung
eingetragen haben.
Egal wie aber ich verstehe es einfach nicht und finde im Netz zwar zig
Anleitungen aber der wirklich richtige Umsetzung ist einfach nicht dabei.
Hier mal die IDs der Gruppen:
Vereinsleitung: 12
Vereinsverwaltung: 13
Abteilungsleiter: 11
Die Kalender-ID: 2
Typo3 Version: 6.1.7
Cal: 1.7.0
Mein TypoScript (Setup) für die Ext sieht soweit so aus (Sorry für das
massiv lange TypoScript:
plugin.tx_cal_controller {
calendarName = Geschäftsstelle
pidList = 170
calendar = 2
rights {
edit = 1
admin.user =
admin.group = 12,13
allowedUsers =
allowedGroups = 11,12,13
create {
event {
saveEventToPid = 170
user =
group = 11,12,13
public = 0
inPast {
user =
group = 11,12,13
}
forTodayAndFuture {
user =
group = 11,12,13
}
notifyUsersOnPublicCreate =
publicEvents {
user =
group =
public = 0
}
additionalFields =
addFeUserToNotify =
addFeUserToShared =
addFeGroupToShared =
addFeGroupToShared.ignore =
enableRTE = 0
enableAllFields {
user =
group =
public = 0
}
timeOffset = 0
fields {
hidden {
user =
group =
public = 0
default = 0
required = 0
}
event_type {
user =
group =
public = 0
# Possible values: 0=event,3=meeting
allowedUids = 0
default = 0
required = 0
}
calendar_id {
user =
group =
public = 0
default = 2
required = 0
}
category {
user =
group =
public = 0
default = 20
required = 0
allowedUids =
}
startdate {
user =
group =
public = 1
default =
required = 1
constrain {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = regexp
regexp = /(\d{4})-(\d{2})-(\d{2})/
message = TEXT
message {
dataWrap = <span class="constrain">%%%WRONG_DATE%%%
(yyyy-mm-dd)</span>
}
}
}
}
enddate {
user =
group =
public = 1
default =
required = 1
constrain <
plugin.tx_cal_controller.rights.create.event.fields.startdate.constrain
}
starttime {
user =
group =
public = 1
# usage: 1300 (hhmm) or now
default =
required = 1
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = allday
value = 0
message = TEXT
message {
dataWrap = false
}
}
}
}
endtime {
user =
group =
public = 1
default =
required = 1
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = allday
value = 0
message = TEXT
message {
dataWrap = false
}
}
}
}
start {
constrain {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = before|equals
field = end
message = TEXT
message {
dataWrap = <span
class="constrain">%%%CONSTRAIN_START_BEFORE_END%%%</span>
}
}
2 {
#less/before/greater/after/equals/regexp/userfunc
rule = after
field = now
message = TEXT
message {
dataWrap = <span
class="constrain">%%%IS_IN_PAST%%%</span>
}
}
}
}
end {
constrain {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = after|equals
field = start
message = TEXT
message {
dataWrap = <span
class="constrain">%%%CONSTRAIN_END_AFTER_START%%%</span>
}
}
2 {
#less/before/greater/after/equals/regexp/userfunc
rule = after
field = now
message = TEXT
message {
dataWrap = <span
class="constrain">%%%IS_IN_PAST%%%</span>
}
}
}
}
allday {
user =
group =
public = 0
default = 0
required = 0
}
title {
user =
group =
public = 1
default =
required = 1
}
cal_organizer {
user =
group =
public = 1
default =
required = 1
allowedUids =
onlyOwn = 1
}
organizer {
user =
group =
public = 0
default =
required = 0
allowedUids =
}
cal_location {
user =
group =
public = 0
default = 2
required = 1
allowedUids =
onlyOwn =
}
location {
user =
group =
public = 0
default =
required = 0
allowedUids =
}
teaser {
user =
group =
public = 0
default =
required = 0
}
description {
user =
group =
public = 1
default =
required = 0
}
recurring {
user =
group =
public = 0
default =
required = 0
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 0
message = TEXT
message {
dataWrap = false
}
}
}
}
notify {
user =
group =
public = 0
defaultUser =
required = 0
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 0
message = TEXT
message {
dataWrap = false
}
}
}
}
shared {
user =
group =
public = 0
defaultUser =
defaultGroup =
required = 0
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 0
message = TEXT
message {
dataWrap = false
}
}
}
}
exception {
user =
group =
public = 0
default =
required = 0
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 0
message = TEXT
message {
dataWrap = false
}
}
}
}
image {
user =
group =
public = 0
default =
required = 0
}
image_caption {
user =
group =
public = 0
default =
required = 0
}
image_title {
user =
group =
public = 0
default =
required = 0
}
image_alt {
user =
group =
public = 0
default =
required = 0
}
attachment {
user =
group =
public = 0
default =
required = 0
}
attachment_caption {
user =
group =
public = 0
default =
required = 0
}
attendee {
user =
group =
public = 1
default =
required = 0
allowedUids =
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 3
message = TEXT
message {
dataWrap = false
}
}
}
}
attendee_external {
user =
group =
public = 1
default =
required = 0
allowedUids =
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 3
message = TEXT
message {
dataWrap = false
}
}
}
}
sendout_invitation {
user =
group =
public = 1
default = 0
required = 0
displayCondition {
1 {
#less/before/greater/after/equals/regexp/userfunc
rule = equals
conditionField = eventType
value = 3
message = TEXT
message {
dataWrap = false
}
}
}
}
} //end plugin.tx_cal_controller.right.create.event.fields
} //end plugin.tx_cal_controller.right.create.event
} //end plugin.tx_cal_controller.rights.create
edit {
event {
user =
group = 12,13
public = 0
additionalFields =
timeOffset = 0
enableAllFields {
user =
group =
public = 0
}
fields < plugin.tx_cal_controller.rights.create.event.fields
enableRTE = 0
onlyOwnEvents {
user =
group = 11
}
addFeUserToShared =
addFeGroupToShared =
addFeGroupToShared.ignore =
startedEvents {
user =
group =
public = 0
}
} //end plugin.tx_cal_controller.rights.edit.event
} //end plugin.tx_cal_controller.rights.edit
delete {
event {
user =
group = 12,13
public = 0
onlyOwnEvents {
user =
group = 11
}
startedEvents {
user =
group =
}
timeOffset = 0
} //end plugin.tx_cal_controller.rights.delete.event
} //end plugin.tx_cal_controller.rights.delete
} //end plugin.tx_cal_controller.rights
view {
dontShowConfirmView = 1
calendar = 2
categoryMode = 1
category = 20
event {
eventViewPid = 1059
createEventViewPid = 1061
editEventViewPid = 1062
deleteEventViewPid = 1063
dateFormat = %a, %d. %b %Y
eventModelTemplate =
fileadmin/templates/tmpl/ext_cal/event_model_intern.html
useTitleForLinkTitle = 1
ownLinkTitleText =
dateDayPosition = 0
dateMonthPosition = 1
dateYearPosition = 2
dateSplitSymbol = -
event {
title.dataWrap = |
alldayTitle.dataWrap = |
startdate.dataWrap = |
starttime.dataWrap = |
enddate.dataWrap = |
endtime.dataWrap = |
description.dataWrap = |
location.dataWrap = |
organizer.dataWrap = |
category.dataWrap = |
}
}
create_event {
redirectAfterCreateToPid = 1055
redirectAfterCreateToView = day
edit_event < plugin.tx_cal_controller.view.create_event
edit_event {
redirectAfterEditToPid = 1055
redirectAfterEditToView = day
}
delete_event {
redirectAfterDeleteToPid = 1055
redirectAfterDeleteToView = day
}
day {
dayViewPid = 1055
dayStart = 0700
dayEnd = 2300
dateFormatWeekList = %a, %d %b
timeFormatDay = %H:00
dateFormatDay = %a, %d %b
displayDate.strftime = %d. %B %Y
}
week {
weekViewPid = 1056
timeFormatDay = %H:00
dayViewLink.strftime = %a (%d)
displayDate{
1.strftime = %d. %B
2.strftime = %d. %B %Y
2.wrap = bis |
}
event {
organizer {
dataWrap = <div>|</div>
}
}
}
month {
monthViewPid = 1057
thisMonthsEvents = 1
event{
title.crop = 30|..
alldayTitle.crop = 30|..
}
}
year {
yearViewPid = 1058
}
list {
listViewPid = 1060
starttime = now
endtime = +6month
pageBrowser = 1
pageBrowser {
recordsPerPage = 20
actPage_stdWrap.wrap = <span><b>|</b></span>
pages_stdWrap.wrap = <span>|</span>
}
enableMonthWrapper = 1
heading{
1.strftime = %d. %B %Y
2.strftime = %d. %B %Y
2.wrap = bis |
}
event {
dateFormat = %d. %B
category.dataWrap = |
}
}
}
}
Jemand ne Idee?
Viele Grüße
Michael
More information about the TYPO3-german
mailing list