Search in sources :

Example 11 with Zimlet

use of com.zimbra.cs.account.Zimlet in project zm-mailbox by Zimbra.

the class ObjectHandler method getObjectHandlers.

// TODO: this caches handlers for the duration of the VM, which is ok if the Indexer
// exits/restarts. Might need to add modified column and periodically refresh and/or
// provide a way to purge the cache
public static synchronized List<ObjectHandler> getObjectHandlers() throws ServiceException {
    if (mHandlerList != null)
        return mHandlerList;
    mHandlerList = new ArrayList<ObjectHandler>();
    List<Zimlet> dots = Provisioning.getInstance().listAllZimlets();
    for (Iterator<Zimlet> it = dots.iterator(); it.hasNext(); ) {
        Zimlet dot = it.next();
        ObjectHandler handler = loadHandler(dot);
        if (handler != null) {
            mHandlerList.add(handler);
        }
    }
    return mHandlerList;
}
Also used : Zimlet(com.zimbra.cs.account.Zimlet)

Example 12 with Zimlet

use of com.zimbra.cs.account.Zimlet in project zm-mailbox by Zimbra.

the class DeleteZimlet method handle.

public Element handle(Element request, Map<String, Object> context) throws ServiceException {
    ZimbraSoapContext zsc = getZimbraSoapContext(context);
    Provisioning prov = Provisioning.getInstance();
    Element z = request.getElement(AdminConstants.E_ZIMLET);
    String name = z.getAttribute(AdminConstants.A_NAME);
    Zimlet zimlet = prov.getZimlet(name);
    if (zimlet == null)
        throw AccountServiceException.NO_SUCH_ZIMLET(name);
    checkRight(zsc, context, zimlet, Admin.R_deleteZimlet);
    String id = zimlet.getId();
    prov.deleteZimlet(name);
    ZimbraLog.security.info(ZimbraLog.encodeAttrs(new String[] { "cmd", "DeleteZimlet", "name", name, "id", id }));
    Element response = zsc.createElement(AdminConstants.DELETE_ZIMLET_RESPONSE);
    return response;
}
Also used : Zimlet(com.zimbra.cs.account.Zimlet) ZimbraSoapContext(com.zimbra.soap.ZimbraSoapContext) Element(com.zimbra.common.soap.Element) Provisioning(com.zimbra.cs.account.Provisioning)

Example 13 with Zimlet

use of com.zimbra.cs.account.Zimlet in project zm-mailbox by Zimbra.

the class ZimletUtil method ldapDeploy.

public static Zimlet ldapDeploy(ZimletFile zf) throws ServiceException, IOException, ZimletException {
    ZimletDescription zd = zf.getZimletDescription();
    String zimletName = zd.getName();
    Map<String, Object> attrs = descToMap(zd);
    List<String> targets = zd.getTargets();
    if (targets != null && targets.size() > 0) {
        attrs.put(Provisioning.A_zimbraZimletTarget, targets);
    }
    String disableZimletUndeploy = zd.getDisableUIUndeploy();
    if (disableZimletUndeploy != null && disableZimletUndeploy.equalsIgnoreCase("true")) {
        attrs.put(Provisioning.A_zimbraAdminExtDisableUIUndeploy, ProvisioningConstants.TRUE);
    }
    if (zd.isExtension()) {
        attrs.put(Provisioning.A_zimbraZimletIsExtension, ProvisioningConstants.TRUE);
    } else {
        attrs.put(Provisioning.A_zimbraZimletIsExtension, ProvisioningConstants.FALSE);
    }
    ZimbraLog.zimlet.info("Deploying Zimlet " + zimletName + " in LDAP.");
    // add zimlet entry to ldap
    Provisioning prov = Provisioning.getInstance();
    Zimlet zim = prov.getZimlet(zimletName);
    if (zim == null) {
        zim = prov.createZimlet(zimletName, attrs);
    } else {
        prov.modifyAttrs(zim, attrs);
    }
    return zim;
}
Also used : Zimlet(com.zimbra.cs.account.Zimlet) Provisioning(com.zimbra.cs.account.Provisioning) SoapProvisioning(com.zimbra.cs.account.soap.SoapProvisioning)

Example 14 with Zimlet

use of com.zimbra.cs.account.Zimlet in project zm-mailbox by Zimbra.

the class ZimletUtil method getZimletConfig.

public static ZimletConfig getZimletConfig(String zimlet) throws ServiceException {
    Provisioning prov = Provisioning.getInstance();
    Zimlet z = prov.getZimlet(zimlet);
    if (z == null) {
        throw AccountServiceException.NO_SUCH_ZIMLET(zimlet);
    }
    String cf = z.getAttr(Provisioning.A_zimbraZimletHandlerConfig);
    if (cf == null) {
        return null;
    }
    try {
        return new ZimletConfig(cf);
    } catch (ZimletException e) {
        ZimbraLog.zimlet.warn("Unable to load zimlet config for " + z.getName(), e);
    }
    return null;
}
Also used : Zimlet(com.zimbra.cs.account.Zimlet) Provisioning(com.zimbra.cs.account.Provisioning) SoapProvisioning(com.zimbra.cs.account.soap.SoapProvisioning)

Example 15 with Zimlet

use of com.zimbra.cs.account.Zimlet in project zm-mailbox by Zimbra.

the class ZimletUtil method orderZimletsByPriority.

public static List<Zimlet> orderZimletsByPriority(String[] zimlets) {
    Provisioning prov = Provisioning.getInstance();
    List<Zimlet> zlist = new ArrayList<Zimlet>();
    for (int i = 0; i < zimlets.length; i++) {
        try {
            Zimlet z = prov.getZimlet(zimlets[i]);
            if (z != null) {
                zlist.add(z);
            }
        } catch (ServiceException se) {
            // ignore error and continue on
            ZimbraLog.zimlet.warn("unable to get zimlet " + zimlets[i], se);
        }
    }
    return orderZimletsByPriority(zlist);
}
Also used : Zimlet(com.zimbra.cs.account.Zimlet) AccountServiceException(com.zimbra.cs.account.AccountServiceException) ServiceException(com.zimbra.common.service.ServiceException) ArrayList(java.util.ArrayList) Provisioning(com.zimbra.cs.account.Provisioning) SoapProvisioning(com.zimbra.cs.account.soap.SoapProvisioning)

Aggregations

Zimlet (com.zimbra.cs.account.Zimlet)37 Provisioning (com.zimbra.cs.account.Provisioning)16 SoapProvisioning (com.zimbra.cs.account.soap.SoapProvisioning)11 Element (com.zimbra.common.soap.Element)8 HashMap (java.util.HashMap)8 ServiceException (com.zimbra.common.service.ServiceException)7 AccountServiceException (com.zimbra.cs.account.AccountServiceException)7 Cos (com.zimbra.cs.account.Cos)4 ZimbraSoapContext (com.zimbra.soap.ZimbraSoapContext)4 Entry (com.zimbra.cs.account.Entry)3 NamedEntry (com.zimbra.cs.account.NamedEntry)3 LdapZimlet (com.zimbra.cs.account.ldap.entry.LdapZimlet)3 AuthFailedServiceException (com.zimbra.cs.account.AccountServiceException.AuthFailedServiceException)2 CacheEntry (com.zimbra.cs.account.Provisioning.CacheEntry)2 ZimbraACE (com.zimbra.cs.account.accesscontrol.ZimbraACE)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 Key (com.zimbra.common.account.Key)1 AccountBy (com.zimbra.common.account.Key.AccountBy)1 DistributionListBy (com.zimbra.common.account.Key.DistributionListBy)1