Changeset 163
- Timestamp:
- 02/15/06 23:25:56
- Files:
-
- trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java (modified) (1 diff)
- trunk/calendar3/webadmin/war/WEB-INF/struts-config.xml (modified) (1 diff)
- trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java (modified) (2 diffs)
- trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/SubscribeAction.java (modified) (3 diffs)
- trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/UnsubscribeAction.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/calendar3/calsvc/src/org/bedework/calsvc/CalSvc.java
r162 r163 920 920 921 921 prefs.getSubscriptions().remove(val); 922 dbi.updatePreferences(prefs);922 //dbi.updatePreferences(prefs); 923 923 } 924 924 trunk/calendar3/webadmin/war/WEB-INF/struts-config.xml
r157 r163 331 331 <forward name="cancelled" path="/subs/showSubs.rdo" redirect="true"/> 332 332 <forward name="retry" path="/subs/showSubs.rdo" redirect="true"/> 333 <forward name="reffed" path="/subs/showSubs.rdo" redirect="true"/> 333 334 <forward name="success" path="/subs/showSubs.rdo" redirect="true" /> 334 335 </action> trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
r147 r163 72 72 import org.bedework.calfacade.svc.BwAuthUserPrefs; 73 73 import org.bedework.calfacade.svc.BwSubscription; 74 import org.bedework.calfacade.svc.BwView; 74 75 import org.bedework.calfacade.svc.EventInfo; 75 76 import org.bedework.calfacade.svc.UserAuth; … … 291 292 form.refreshIsNeeded(); 292 293 return true; 294 } 295 296 protected String unsubscribe(HttpServletRequest request, 297 BwActionFormBase form) throws Throwable { 298 if (form.getGuest()) { 299 return "noAccess"; // First line of defence 300 } 301 302 CalSvcI svc = form.fetchSvci(); 303 304 String name = request.getParameter("name"); 305 306 if (name == null) { 307 // Assume no access 308 form.getErr().emit("org.bedework.client.error.missingfield", "name"); 309 return "error"; 310 } 311 312 BwSubscription sub = svc.findSubscription(name); 313 314 if (sub == null) { 315 form.getErr().emit("org.bedework.client.error.nosuchsubscription", name); 316 return "notFound"; 317 } 318 319 if (sub.getUnremoveable() && !form.getUserAuth().isSuperUser()) { 320 return "noAccess"; // Only super user can remove the unremovable 321 } 322 323 Iterator it = svc.getViews().iterator(); 324 boolean reffed = false; 325 while (it.hasNext()) { 326 BwView v = (BwView)it.next(); 327 if (v.getSubscriptions().contains(sub)) { 328 form.getErr().emit("org.bedework.client.error.subscription.reffed", 329 v.getName()); 330 reffed = true; 331 } 332 } 333 334 if (reffed) { 335 return "reffed"; 336 } 337 338 svc.removeSubscription(sub); 339 form.getMsg().emit("org.bedework.client.message.subscription.removed"); 340 return "success"; 293 341 } 294 342 trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/SubscribeAction.java
r160 r163 79 79 * <p>Forwards to:<ul> 80 80 * <li>"error" some form of fatal error.</li> 81 * <li>"reffed" subscription is referenced.</li> 81 82 * <li>"noAccess" user not authorised.</li> 82 83 * <li>"cancelled" for a cancelled request.</li> … … 96 97 if (form.getGuest()) { 97 98 return "noAccess"; // First line of defence 99 } 100 101 if (getReqPar(request, "delete") != null) { 102 return unsubscribe(request, form); 98 103 } 99 104 … … 139 144 } else if (getReqPar(request, "updateSubscription") != null) { 140 145 svc.updateSubscription(sub); 141 } else if (getReqPar(request, "delete") != null) {142 svc.removeSubscription(sub);143 146 } else { 144 147 } trunk/calendar3/webcommon/src/org/bedework/webcommon/subs/UnsubscribeAction.java
r55 r163 54 54 package org.bedework.webcommon.subs; 55 55 56 import org.bedework.calfacade.svc.BwSubscription;57 import org.bedework.calsvci.CalSvcI;58 56 import org.bedework.webcommon.BwAbstractAction; 59 57 import org.bedework.webcommon.BwActionFormBase; … … 71 69 * <p>Forwards to:<ul> 72 70 * <li>"error" some form of fatal error.</li> 71 * <li>"reffed" subscription is referenced.</li> 73 72 * <li>"noAccess" user not authorised.</li> 74 73 * <li>"notFound" no such subscription.</li> … … 86 85 BwSession sess, 87 86 BwActionFormBase form) throws Throwable { 88 if (form.getGuest()) { 89 return "noAccess"; // First line of defence 90 } 91 92 CalSvcI svc = form.fetchSvci(); 93 94 String name = request.getParameter("name"); 95 96 if (name == null) { 97 // Assume no access 98 form.getErr().emit("org.bedework.client.error.missingfield", "name"); 99 return "error"; 100 } 101 102 BwSubscription sub = svc.findSubscription(name); 103 104 if (sub == null) { 105 form.getErr().emit("org.bedework.client.error.nosuchsubscription", name); 106 return "notFound"; 107 } 108 109 svc.removeSubscription(sub); 110 form.getMsg().emit("org.bedework.client.message.subscription.removed"); 111 return "success"; 87 return unsubscribe(request, form); 112 88 } 113 89 }
