diff --git a/entity/Appointment_entity/grantDeleteProcess.js b/entity/Appointment_entity/grantDeleteProcess.js index 4caa2d99cfdda2637190ab5c76a15565666b79b5..aef302f111201f63dc427328d2e4db900ac4c0d3 100644 --- a/entity/Appointment_entity/grantDeleteProcess.js +++ b/entity/Appointment_entity/grantDeleteProcess.js @@ -2,6 +2,10 @@ import("system.vars"); import("system.result"); import("system.calendars"); import("system.text"); +import("system.tools"); -var owner = text.decodeMS(JSON.parse(vars.get("$param.Entry_param"))["h"])[1].split(":")[1]; -result.string(calendars.hasPermission([owner], calendars.VEVENT, "WRITE")); \ No newline at end of file + +var user = tools.getCurrentUser(); +var calUser = calendars.getCalendarUser(user["title"]); +var calUserCn = text.decodeMS(calUser)[1].split(":")[1]; +result.string(calendars.hasPermission(calUserCn, calendars.VEVENT, "WRITE")); \ No newline at end of file diff --git a/entity/Appointment_entity/grantUpdateProcess.js b/entity/Appointment_entity/grantUpdateProcess.js index 3562ea4a6c4ba8fda784eb7ea85abd591e022f87..e6ac4c8426c460fd26d1f16844a7844c09300153 100644 --- a/entity/Appointment_entity/grantUpdateProcess.js +++ b/entity/Appointment_entity/grantUpdateProcess.js @@ -2,7 +2,13 @@ import("system.vars"); import("system.result"); import("system.calendars"); import("system.text"); +import("system.tools"); +import("system.logging"); -var owner = text.decodeMS(JSON.parse(vars.get("$param.Entry_param"))["h"])[1].split(":")[1]; -result.string(calendars.hasPermission([owner], calendars.VEVENT, "WRITE")); +var user = tools.getCurrentUser(); +var calUser = calendars.getCalendarUser(user["title"]); +var calUserCn = text.decodeMS(calUser)[1].split(":")[1]; +var permitted = calendars.hasPermission(calUserCn, calendars.VEVENT, "WRITE"); + +result.string(permitted); diff --git a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js index e56415a0faf52007f91bcc4e92f9ae20aebfa819..3d5ff22eafe395331b6e6d52bf359b60c6d91098 100644 --- a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js @@ -9,6 +9,7 @@ import("system.datetime"); import("system.eMath"); import("system.util"); import("system.neon"); +import("system.text"); var appointmentSelect = newSelect("APPOINTMENT_ID").from("AB_APPOINTMENTLINK"); var appointmentUids; @@ -77,7 +78,7 @@ function buildEntry(pEntry, pMasterentry) if(pEntry[calendars.ORGANIZER2] != undefined) var organizer = pEntry[calendars.ORGANIZER2]["paramvalue"]; if(pEntry[calendars.USER2] != undefined) - var owner = pEntry[calendars.USER2]["paramvalue"]; + var owner = JSON.stringify(pEntry[calendars.USER2]); var status = pEntry[calendars.STATUS]; var location = pEntry[calendars.LOCATION]; var reminder = pEntry[calendars.REMINDER_DURATION]; diff --git a/entity/Appointment_entity/recordcontainers/jdito/onDelete.js b/entity/Appointment_entity/recordcontainers/jdito/onDelete.js index 4e0e5c7a5c1257293965989052765e861a71fff7..6f6249aee33bd1be9f2247d09814ffba59a1d904 100644 --- a/entity/Appointment_entity/recordcontainers/jdito/onDelete.js +++ b/entity/Appointment_entity/recordcontainers/jdito/onDelete.js @@ -1,20 +1,30 @@ +import("system.logging"); import("Sql_lib"); import("system.neon"); import("system.calendars"); import("system.vars"); -if (vars.exists("$param.Entry_param")) +var uid; + +if (vars.get("$param.Entry_param") != null) { var entry = JSON.parse(vars.getString("$param.Entry_param")); var reccurenceid = entry[calendars.RECURRENCEID]; + if (reccurenceid == undefined) reccurenceid = null; - calendars.removeEntryByUID(calendars.VEVENT, entry[calendars.USER2]["cn"], entry[calendars.ID], reccurenceid) + uid = entry[calendars.ID]; + calendars.removeEntryByUID(calendars.VEVENT, entry[calendars.USER2]["cn"], uid, reccurenceid); +} +else if(vars.get("$field.OWNER")) +{ + uid = vars.get("$field.UID"); + calendars.removeEntryByUID(calendars.VEVENT, JSON.parse(vars.get("$field.OWNER"))["cn"], uid, vars.get("$field.RECURRENCEID")); +} /** * Deletes ApointmentLinks referring to the deleted Appointment. */ - newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", entry[calendars.ID]) - .deleteData(); -} \ No newline at end of file + newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", uid) + .deleteData(); \ No newline at end of file