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;
}
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;
}
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;
}
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;
}
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);
}
Aggregations