Search in sources :

Example 1 with SynchI

use of org.bedework.calsvci.SynchI in project bw-calendar-engine by Bedework.

the class Calendars method add.

@Override
public BwCalendar add(BwCalendar val, final String parentPath) throws CalFacadeException {
    if (getPrincipalInfo().getSubscriptionsOnly()) {
        // Only allow the creation of an alias
        if (val.getCalType() != BwCalendar.calTypeAlias) {
            throw new CalFacadeForbidden("User has read only access");
        }
    }
    updateOK(val);
    setupSharableEntity(val, getPrincipal().getPrincipalRef());
    if (val.getPwNeedsEncrypt() || (val.getExternalSub() && val.getRemotePw() != null)) {
        encryptPw(val);
    }
    val = getCal().add(val, parentPath);
    ((Preferences) getSvc().getPrefsHandler()).updateAdminPrefs(false, val, null, null, null);
    final SynchI synch = getSvc().getSynch();
    if (val.getExternalSub()) {
        if (!synch.subscribe(val)) {
            throw new CalFacadeException(CalFacadeException.subscriptionFailed);
        }
    }
    return val;
}
Also used : SynchI(org.bedework.calsvci.SynchI) CalFacadeForbidden(org.bedework.calfacade.exc.CalFacadeForbidden) BwPreferences(org.bedework.calfacade.svc.BwPreferences) CalFacadeException(org.bedework.calfacade.exc.CalFacadeException)

Aggregations

CalFacadeException (org.bedework.calfacade.exc.CalFacadeException)1 CalFacadeForbidden (org.bedework.calfacade.exc.CalFacadeForbidden)1 BwPreferences (org.bedework.calfacade.svc.BwPreferences)1 SynchI (org.bedework.calsvci.SynchI)1