You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2012/03/16 22:30:42 UTC
svn commit: r1301774 - in /incubator/openmeetings/trunk/singlewebapp:
WebContent/src/modules/lzcalendar/compontents/
src/app/org/openmeetings/app/data/calendar/daos/
src/app/org/openmeetings/app/data/calendar/management/
src/app/org/openmeetings/app/re...
Author: sebawagner
Date: Fri Mar 16 21:30:41 2012
New Revision: 1301774
URL: http://svn.apache.org/viewvc?rev=1301774&view=rev
Log:
OPENMEETINGS-7 Use RTMP for save / update (Bug in OpenLaszlo API for params with same name)
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzEditCalendarEvent.lzx
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/daos/AppointmentDaoImpl.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/CalendarService.java
incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java
incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebServiceFacade.java
Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzEditCalendarEvent.lzx
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzEditCalendarEvent.lzx?rev=1301774&r1=1301773&r2=1301774&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzEditCalendarEvent.lzx (original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzEditCalendarEvent.lzx Fri Mar 16 21:30:41 2012
@@ -34,6 +34,8 @@
<attribute name="lzCalendarRef" value="null" />
<dataset name="eventDS" />
+
+ <attribute name="updateObj" value="null" />
<handler name="oninit">
<![CDATA[
@@ -61,7 +63,7 @@
this.getAppointmentReminderTypList.setData(this.remindertypes.data);
- this.eventDS.setData(this.dataElement.childNodes);
+ this.eventDS.setAttribute("data", this.dataElement.childNodes);
if ($debug) Debug.write("this.eventDS ",this.eventDS);
@@ -75,91 +77,106 @@
<method name="saveAndClose">
<![CDATA[
- var tMemberArgs = this._participentList.getMemberArrayValue();
+ this.updateObj = new Object();
+
+ updateObj.tMemberArgs = this._participentList.getMemberArrayValue();
+
+ if ($debug) Debug.write("tMemberArgs: ",updateObj.tMemberArgs.length,updateObj.tMemberArgs);
- var tAppointmentStartDate = this._dateStart.getDate();
- if ($debug) Debug.write("tAppointmentStartDate ",tAppointmentStartDate);
+ updateObj.appointmentId = Number(this.eventDS.getPointer().xpathQuery('appointmentId/text()'));
+ updateObj.appointmentstart = this._dateStart.getDate();
+ if ($debug) Debug.write("appointmentstart ",updateObj.appointmentstart);
var tTimeStart = this._timeStart.getText();
var hours = Number(tTimeStart.substr(0,2));
var mins = Number(tTimeStart.substr(4,2));
if ($debug) Debug.write("hours:mins",hours,mins,tTimeStart.substr(4,2));
- tAppointmentStartDate.setHours(hours);
- tAppointmentStartDate.setMinutes(mins);
+ updateObj.appointmentstart.setHours(hours);
+ updateObj.appointmentstart.setMinutes(mins);
- var tAppointmentEndDate = this._dateEnd.getDate();
+ updateObj.appointmentend = this._dateEnd.getDate();
var tTimeEnd = this._timeEnd.getText();
var hours = Number(tTimeEnd.substr(0,2));
var mins = Number(tTimeEnd.substr(4,2));
- tAppointmentEndDate.setHours(hours);
- tAppointmentEndDate.setMinutes(mins);
+ updateObj.appointmentend.setHours(hours);
+ updateObj.appointmentend.setMinutes(mins);
- var updateurl = canvas.protocol + '://'+canvas.rtmphostlocal+':'+canvas.red5httpport
- +canvas.httpRootKey+'services/CalendarService/saveAppointment';
- var queryString = 'SID='+canvas.sessionId
- +'&appointmentName='+encodeURIComponent(this._title.getText())
- +'&appointmentLocation='+encodeURIComponent(this._location.getText())
- +'&appointmentDescription='+encodeURIComponent(this._descr.getText())
- +'&appointmentstart='+parseDateToRestDateCalendar(tAppointmentStartDate)
- +'&appointmentend='+parseDateToRestDateCalendar(tAppointmentEndDate)
- +'&isDaily='+false
- +'&isYearly='+false
- +'&categoryId='+1
- +'&remind='+this._reminderType.getValue()
- ;
-
- for (var i=0;i<tMemberArgs.length;i++) {
-
- var tObject = tMemberArgs[i];
- queryString += '&mmClient=' +
- encodeURIComponent(
- tObject.meetingMemberId + ','
- + tObject.firstname + ','
- + tObject.lastname + ','
- + tObject.email + ','
- + tObject.userId + ','
- + tObject.jNameTimeZone
- );
-
- }
-
- queryString += +'&roomType='+this._roomType.getValue()
- +'&baseUrl='+this.baseUrl
- +'&languageId='+hib.userlang
+ updateObj.appointmentName = this._title.getText();
+ updateObj.appointmentLocation = this._location.getText();
+ updateObj.appointmentDescription = this._descr.getText();
+ updateObj.isDaily = false;
+ updateObj.isWeekly = false;
+ updateObj.isMonthly = false;
+ updateObj.isYearly = false;
+ updateObj.categoryId = 1;
+ updateObj.remind = this._reminderType.getValue();
+ updateObj.roomType = this._roomType.getValue();
- if ($debug) Debug.write(updateurl);
- if ($debug) Debug.write(queryString);
-
- this.saveNewAppointment.setAttribute("src",updateurl);
- this.saveNewAppointment.setAttribute("querystring",queryString);
- this.saveNewAppointment.doRequest();
+ if ($debug) Debug.write("appointmentId: ",updateObj.appointmentId);
+
+ if (updateObj.appointmentId > 0) {
+ this.updateAppointment.doCall();
+ } else {
+ this.saveAppointment.doCall();
+ }
]]>
</method>
<dataset name="getAppointmentReminderTypList" />
- <!--
- String SID, String appointmentName,
- String appointmentLocation, String appointmentDescription,
- Date appointmentstart, Date appointmentend, Boolean isDaily,
- Boolean isWeekly, Boolean isMonthly, Boolean isYearly,
- Long categoryId, Long remind,
- String[] mmClient, Long roomType,
- String baseUrl, Long languageId
- -->
- <dataset name="saveNewAppointment" type="http" querytype="POST">
- <handler name="ondata" args="d">
- if ($debug) Debug.write("saveNewAppointment ",d);
- var tPointer = new lz.datapointer();
- tPointer.setPointer(d);
- var returnValue = tPointer.xpathQuery('saveAppointmentResponse/return/text()');
- if ($debug) Debug.write("returnValue "+returnValue);
- var tNumber = Number(returnValue);
- if (tNumber > 0) {
- parent.lzCalendarRef.reload();
+ <netRemoteCallHib name="saveAppointment" funcname="calendarservice.saveAppointment"
+ remotecontext="$once{ canvas.thishib }" >
+ <netparam><method name="getValue">return canvas.sessionId; </method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentName;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentLocation;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentDescription;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentstart;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentend;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isDaily;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isWeekly;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isMonthly;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isYearly;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.categoryId;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.remind;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.tMemberArgs;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.roomType;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.baseUrl;</method></netparam>
+ <netparam><method name="getValue">return hib.userlang;</method></netparam>
+ <handler name="ondata" args="value">
+ <![CDATA[
+ if ($debug) Debug.write("saveAppointment ",value);
+ parent.lzCalendarRef.reload();
parent.close();
- }
- </handler>
- </dataset>
+ ]]>
+ </handler>
+ </netRemoteCallHib>
+
+ <netRemoteCallHib name="updateAppointment" funcname="calendarservice.updateAppointment"
+ remotecontext="$once{ canvas.thishib }" >
+ <netparam><method name="getValue">return canvas.sessionId; </method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentId;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentName;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentLocation;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentDescription;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentstart;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.appointmentend;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isDaily;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isWeekly;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isMonthly;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.isYearly;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.categoryId;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.remind;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.tMemberArgs;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.updateObj.roomType;</method></netparam>
+ <netparam><method name="getValue">return parent.parent.baseUrl;</method></netparam>
+ <netparam><method name="getValue">return hib.userlang;</method></netparam>
+ <handler name="ondata" args="value">
+ <![CDATA[
+ if ($debug) Debug.write("updateAppointment ",value);
+ parent.lzCalendarRef.reload();
+ parent.close();
+ ]]>
+ </handler>
+ </netRemoteCallHib>
<labelText name="_titleLabel" x="4" y="24" labelid="572" fontstyle="bold" />
@@ -235,7 +252,7 @@
for (var i=0;i<canvas.roomTypesInitValues.length;i++){
this.addItem(canvas.roomTypesInitValues[i].name,canvas.roomTypesInitValues[i].roomtypes_id);
}
- this.selectItem(String(canvas.roomTypesInitValues[0].roomtypes_id));
+ //this.selectItem(String(canvas.roomTypesInitValues[0].roomtypes_id));
]]>
</handler>
</resetCombobox>
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/daos/AppointmentDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/daos/AppointmentDaoImpl.java?rev=1301774&r1=1301773&r2=1301774&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/daos/AppointmentDaoImpl.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/daos/AppointmentDaoImpl.java Fri Mar 16 21:30:41 2012
@@ -487,12 +487,15 @@ public class AppointmentDaoImpl {
if (mmClient != null) {
for (int i = 0; i < mmClient.size(); i++) {
+
@SuppressWarnings("rawtypes")
Map clientMemeber = (Map) mmClient.get(i);
Long meetingMemberId = Long
.valueOf(
clientMemeber.get("meetingMemberId")
.toString()).longValue();
+
+ log.debug("DELETE newly CHECK meetingMemberId: {} VS {} -- ", meetingMemberId, memberRemote.getMeetingMemberId());
if (memberRemote.getMeetingMemberId().equals(
meetingMemberId)) {
@@ -500,12 +503,15 @@ public class AppointmentDaoImpl {
+ meetingMemberId + " is to be removed!");
// Notifying Member for Update
found = true;
+ break;
}
}
}
if (!found) {
+
+ log.debug("DELETE getMeetingMemberId: {} -- ", memberRemote.getMeetingMemberId());
// Not in List in client delete it
meetingMemberLogic.deleteMeetingMember(
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/management/AppointmentLogic.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/management/AppointmentLogic.java?rev=1301774&r1=1301773&r2=1301774&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/management/AppointmentLogic.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/data/calendar/management/AppointmentLogic.java Fri Mar 16 21:30:41 2012
@@ -319,7 +319,7 @@ public class AppointmentLogic {
try {
Appointment point = getAppointMentById(appointmentId);
-
+
if (point == null) {
log.error("No appointment found for ID " + appointmentId);
return null;
Modified: incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/CalendarService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/CalendarService.java?rev=1301774&r1=1301773&r2=1301774&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/CalendarService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/app/org/openmeetings/app/remote/CalendarService.java Fri Mar 16 21:30:41 2012
@@ -181,11 +181,12 @@ public class CalendarService {
}
public Long updateAppointment(String SID, Long appointmentId,
- String appointmentName, String appointmentLocation,
- String appointmentDescription, Date appointmentstart,
- Date appointmentend, Boolean isDaily, Boolean isWeekly,
- Boolean isMonthly, Boolean isYearly, Long categoryId, Long remind,
- List<?> mmClient, Long roomType, String baseurl, Long language_id) {
+ String appointmentName,
+ String appointmentLocation, String appointmentDescription,
+ Date appointmentstart, Date appointmentend, Boolean isDaily,
+ Boolean isWeekly, Boolean isMonthly, Boolean isYearly,
+ Long categoryId, Long remind, @SuppressWarnings("rawtypes") List mmClient, Long roomType,
+ String baseUrl, Long language_id) {
try {
Long users_id = sessionManagement.checkSession(SID);
@@ -215,7 +216,7 @@ public class CalendarService {
appointmentName, appointmentDescription,
appointmentstart, appointmentend, isDaily, isWeekly,
isMonthly, isYearly, categoryId, remind, mmClient,
- users_id, baseurl, language_id, false, "", user
+ users_id, baseUrl, language_id, false, "", user
.getOmTimeZone().getIcal());
}
} catch (Exception err) {
Modified: incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java?rev=1301774&r1=1301773&r2=1301774&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebService.java Fri Mar 16 21:30:41 2012
@@ -25,6 +25,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.axis2.AxisFault;
import org.openmeetings.app.OpenmeetingsVariables;
import org.openmeetings.app.data.basic.AuthLevelmanagement;
import org.openmeetings.app.data.basic.Sessionmanagement;
@@ -256,7 +257,8 @@ public class CalendarWebService {
* @param baseUrl
* the base URL for the invitations
* @param languageId
- * the language id of the calendar event
+ * the language id of the calendar event, notification emails
+ * will be send in this language
* @return
*/
public Long saveAppointment(String SID, String appointmentName,
@@ -290,8 +292,6 @@ public class CalendarWebService {
newList.add(map);
}
- // FIXME: Check if the event is also the event of the current
-
Long id = appointmentLogic.saveAppointment(appointmentName,
users_id, appointmentLocation, appointmentDescription,
appointmentstart.getTime(), appointmentend.getTime(),
@@ -335,10 +335,6 @@ public class CalendarWebService {
Long user_level = userManagement.getUserLevelByID(users_id);
if (authLevelManagement.checkUserLevel(user_level)) {
- log.debug("updateAppointment");
- // FIXME: Check if the event is also the event of the current
- // SID
-
log.debug("appointmentId " + appointmentId);
appointmentLogic.getAppointMentById(appointmentId);
@@ -358,93 +354,168 @@ public class CalendarWebService {
}
/**
- *
- * Update a calendar event all attributes
+ * Save an appointment
*
* @param SID
+ * The SID of the User. This SID must be marked as Loggedin
* @param appointmentId
+ * the id to update
* @param appointmentName
+ * name of the calendar event
* @param appointmentLocation
+ * location info text of the calendar event
* @param appointmentDescription
+ * description test of the calendar event
* @param appointmentstart
+ * start as Date yyyy-mm-ddThh:mm:ss
* @param appointmentend
+ * end as Date yyyy-mm-ddThh:mm:ss
* @param isDaily
+ * if the calendar event should be repeated daily (not
+ * implemented)
* @param isWeekly
+ * if the calendar event should be repeated weekly (not
+ * implemented)
* @param isMonthly
+ * if the calendar event should be repeated monthly (not
+ * implemented)
* @param isYearly
+ * if the calendar event should be repeated yearly (not
+ * implemented)
* @param categoryId
+ * the category id of the calendar event
* @param remind
+ * the reminder type of the calendar event
* @param mmClient
+ * List of clients, comma separated string, <br/>
+ * sample: 1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
+ * to add multiple clients you can use the same GET parameter in
+ * the URL multiple times, for example:
+ * &mmClient=1,firstname,lastname,hans
+ * .tier@gmail.com,1,Etc/GMT+1&mmClient
+ * =2,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1
* @param roomType
- * @param baseurl
+ * the room type for the calendar event
+ * @param baseUrl
+ * the base URL for the invitations
* @param languageId
+ * the language id of the calendar event, notification emails
+ * will be send in this language
* @return
*/
public Long updateAppointment(String SID, Long appointmentId,
String appointmentName, String appointmentLocation,
- String appointmentDescription, Date appointmentstart,
- Date appointmentend, Boolean isDaily, Boolean isWeekly,
+ String appointmentDescription, Calendar appointmentstart,
+ Calendar appointmentend, Boolean isDaily, Boolean isWeekly,
Boolean isMonthly, Boolean isYearly, Long categoryId, Long remind,
- List<?> mmClient, Long roomType, String baseurl, Long languageId) {
+ String[] mmClient, Long roomType, String baseurl, Long languageId) throws AxisFault {
try {
Long users_id = sessionManagement.checkSession(SID);
Long user_level = userManagement.getUserLevelByID(users_id);
+
+
if (authLevelManagement.checkUserLevel(user_level)) {
+ //check if the appointment belongs to the current user
+ Appointment appointment = appointmentLogic
+ .getAppointMentById(appointmentId);
+ if (!appointment.getUserId().getUser_id().equals(users_id)) {
+ throw new AxisFault(
+ "The Appointment cannot be updated by the given user");
+ }
+ } else if (authLevelManagement.checkUserLevel(user_level)) {
+ //fine
+ } else {
+ throw new AxisFault("Not allowed to preform that action, Authenticate the SID first");
+ }
- log.debug("updateAppointment");
+ List<Map<String, String>> newList = new ArrayList<Map<String, String>>();
- RoomTypes rt = roommanagement.getRoomTypesById(roomType);
+ for (String singleClient : mmClient) {
+ String[] params = singleClient.split(",");
+ Map<String, String> map = new HashMap<String, String>();
+ map.put("meetingMemberId", params[0]);
+ map.put("firstname", params[1]);
+ map.put("lastname", params[2]);
+ map.put("email", params[3]);
+ map.put("userId", params[4]);
+ map.put("jNameTimeZone", params[5]);
+ newList.add(map);
+ }
- Appointment app = appointmentLogic
- .getAppointMentById(appointmentId);
+ log.debug("updateAppointment");
- Rooms room = app.getRoom();
- if (room != null) {
+ RoomTypes rt = roommanagement.getRoomTypesById(roomType);
- room.setComment(appointmentDescription);
- room.setName(appointmentName);
- room.setRoomtype(rt);
+ Appointment app = appointmentLogic
+ .getAppointMentById(appointmentId);
- roommanagement.updateRoomObject(room);
- }
+ Rooms room = app.getRoom();
+ if (room != null) {
- Users user = userManagement.getUserById(users_id);
+ room.setComment(appointmentDescription);
+ room.setName(appointmentName);
+ room.setRoomtype(rt);
- return appointmentLogic.updateAppointment(appointmentId,
- appointmentName, appointmentDescription,
- appointmentstart, appointmentend, isDaily, isWeekly,
- isMonthly, isYearly, categoryId, remind, mmClient,
- users_id, baseurl, languageId, false, "", user
- .getOmTimeZone().getIcal());
+ roommanagement.updateRoomObject(room);
}
+
+ Users user = userManagement.getUserById(users_id);
+
+ return appointmentLogic.updateAppointment(appointmentId,
+ appointmentName, appointmentDescription,
+ appointmentstart.getTime(), appointmentend.getTime(),
+ isDaily, isWeekly,
+ isMonthly, isYearly, categoryId, remind, newList,
+ users_id, baseurl, languageId, false, "", user
+ .getOmTimeZone().getIcal());
+
+
} catch (Exception err) {
log.error("[updateAppointment]", err);
- err.printStackTrace();
+ throw new AxisFault(err.getMessage());
}
- return null;
-
}
/**
*
* delete a calendar event
*
+ * If the given SID is from an Administrator or Web-Service user, the user
+ * can delete any appointment.<br/>
+ * If the SID is assigned to a simple user, he can only delete appointments
+ * where he is also the owner/creator of the appointment
+ *
* @param SID
+ * an authenticated SID
* @param appointmentId
+ * the id to delete
* @param language_id
+ * the language id in which the notifications for the deleted
+ * appointment are send
* @return
*/
public Long deleteAppointment(String SID, Long appointmentId,
- Long language_id) {
-
- log.debug("deleteAppointment : " + appointmentId);
-
+ Long language_id) throws AxisFault {
try {
Long users_id = sessionManagement.checkSession(SID);
Long user_level = userManagement.getUserLevelByID(users_id);
- if (authLevelManagement.checkUserLevel(user_level)) {
+
+ if (authLevelManagement.checkWebServiceLevel(user_level)) {
+
+ return appointmentLogic.deleteAppointment(appointmentId,
+ users_id, language_id);
+
+ } else if (authLevelManagement.checkUserLevel(user_level)) {
+
+ Appointment appointment = appointmentLogic
+ .getAppointMentById(appointmentId);
+
+ if (!appointment.getUserId().getUser_id().equals(users_id)) {
+ throw new AxisFault(
+ "The Appointment cannot be deleted by the given user");
+ }
return appointmentLogic.deleteAppointment(appointmentId,
users_id, language_id);
@@ -453,9 +524,9 @@ public class CalendarWebService {
} catch (Exception err) {
log.error("[deleteAppointment]", err);
+ throw new AxisFault(err.getMessage());
}
return null;
-
}
/**
Modified: incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebServiceFacade.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebServiceFacade.java?rev=1301774&r1=1301773&r2=1301774&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebServiceFacade.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/calendarservice/org/openmeetings/axis/services/CalendarWebServiceFacade.java Fri Mar 16 21:30:41 2012
@@ -110,15 +110,15 @@ public class CalendarWebServiceFacade {
public Long updateAppointment(String SID, Long appointmentId,
String appointmentName, String appointmentLocation,
- String appointmentDescription, Date appointmentstart,
- Date appointmentend, Boolean isDaily, Boolean isWeekly,
+ String appointmentDescription, Calendar appointmentstart,
+ Calendar appointmentend, Boolean isDaily, Boolean isWeekly,
Boolean isMonthly, Boolean isYearly, Long categoryId, Long remind,
- Long roomType, String baseurl, Long languageId)
+ String[] mmClient, Long roomType, String baseurl, Long languageId)
throws AxisFault {
return getCalendarServiceProxy().updateAppointment(SID, appointmentId,
appointmentName, appointmentLocation, appointmentDescription,
appointmentstart, appointmentend, isDaily, isWeekly, isMonthly,
- isYearly, categoryId, remind, null, roomType, baseurl,
+ isYearly, categoryId, remind, mmClient, roomType, baseurl,
languageId);
}