<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.open-xchange.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=John-david.henderson</id>
	<title>Open-Xchange - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.open-xchange.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=John-david.henderson"/>
	<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=Special:Contributions/John-david.henderson"/>
	<updated>2026-08-23T03:37:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=Yahoo_Bundles&amp;diff=23604</id>
		<title>Yahoo Bundles</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=Yahoo_Bundles&amp;diff=23604"/>
		<updated>2017-07-31T16:19:51Z</updated>

		<summary type="html">&lt;p&gt;John-david.henderson: /* Preparation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Using Yahoo with Open-Xchange =&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
 &lt;br /&gt;
The application keys for yahoo need to be replaced by ones gotten from an application managed at yahoo.&lt;br /&gt;
&lt;br /&gt;
* Go to https://developer.yahoo.com/apps/create/ and sign into Yahoo. It is recommended to use a company-account for this where the credentials are known to more than one person.&lt;br /&gt;
&lt;br /&gt;
* You will see a list of all yahoo-projects associated with the current account. Click &amp;quot;Create a Project&amp;quot; on the right&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_11.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter a name and description for the yahoo-application in fields &amp;quot;Application Name&amp;quot; and &amp;quot;Description&amp;quot; respectively. Both will be shown to your users when allowing access to Yahoo later.&lt;br /&gt;
&lt;br /&gt;
* Enter the domain of your company website in field &amp;quot;Home Page URL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Select &amp;quot;This app requires access to private user data.&amp;quot; under &amp;quot;Access Scopes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enter the domain where your Open-Xchange server will run in field &amp;quot;Application Domain&amp;quot;. This is important as the Api-Key and -Secret generated later and used with Open-Xchange will only work for this domain.&lt;br /&gt;
&lt;br /&gt;
* Check &amp;quot;Contacts&amp;quot; under &amp;quot;Select APIs for private user data access:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Check &amp;quot;I have read and agree to the Yahoo! Developer Network Terms of Use.&amp;quot; under &amp;quot;Terms of Use&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Click &amp;quot;Create Project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_12.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_13_2.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Enter the value next to &amp;quot;Consumer Key&amp;quot; into file &amp;quot;/opt/openexchange/etc/groupware/yahoooauth.properties&amp;quot; as value for the parameter &amp;quot;com.openexchange.oauth.yahoo.apiKey&amp;quot;. Please click the value to highlight the text.&lt;br /&gt;
&lt;br /&gt;
* Enter the value next to &amp;quot;Consumer Secret&amp;quot; into file &amp;quot;/opt/openexchange/etc/groupware/yahoooauth.properties&amp;quot; as value for the parameter &amp;quot;com.openexchange.oauth.yahoo.apiSecret&amp;quot;. Please click the value to highlight the text.&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_05.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_06.png]]&lt;br /&gt;
&lt;br /&gt;
* Click &amp;quot;Verify Domain&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* On the next screen click the button &amp;quot;Verify&amp;quot; next to the domain of your application&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_14.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
* Do what is described on screen to verify your domain.&lt;br /&gt;
&lt;br /&gt;
[[File:Yahoo_15.png | 800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{InstallPlugin|pluginname=open-xchange-oauth open-xchange-messaging|toplevel=products |sopath=appsuite/stable/backend |version=App Suite}}&lt;br /&gt;
&lt;br /&gt;
{{InstallPlugin|pluginname=open-xchange-oauth-yahoo open-xchange-subscribe-yahoo|sopath=stable}}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
If your OX server is reachable only via one host name, you won&#039;t have to do anything. If it is reachable by more than one host name, create or open the file &amp;quot;/opt/openexchange/etc/groupware/deferrer.properties&amp;quot; and set the properties therein as such:&lt;br /&gt;
&lt;br /&gt;
com.openexchange.http.deferrer.url=https://mymaindomain.invalid&lt;br /&gt;
&lt;br /&gt;
substituting the value of the property for the domain for which you registered the yahoo-application above (Parameter &amp;quot;Application Domain&amp;quot;, see above under Preparation).&lt;/div&gt;</summary>
		<author><name>John-david.henderson</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=Spamexperts&amp;diff=22246</id>
		<title>Spamexperts</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=Spamexperts&amp;diff=22246"/>
		<updated>2016-07-29T11:55:59Z</updated>

		<summary type="html">&lt;p&gt;John-david.henderson: /* Provisioning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
This package connects the [http://www.spamexperts.com/ SpamExperts] system with Open-Xchange.&lt;br /&gt;
It allows to access your SpamExperts settings from within Open-Xchange and use the spam- and ham&lt;br /&gt;
learning mechanisms of SpamExperts directly from within the Open-Xchange UI.&lt;br /&gt;
&lt;br /&gt;
{{InstallPlugin|pluginname=open-xchange-spamhandler-spamexperts open-xchange-spamhandler-spamexperts-gui|sopath=6.22/backend|version=v6.22.x}}&lt;br /&gt;
&lt;br /&gt;
{{InstallPlugin|pluginname=open-xchange-spamhandler-spamexperts open-xchange-appsuite-spamexperts|toplevel=products|sopath=appsuite/stable/backend|version=App Suite}}&lt;br /&gt;
&lt;br /&gt;
=Components= &lt;br /&gt;
&lt;br /&gt;
== OX UI Plugin ==&lt;br /&gt;
&lt;br /&gt;
The UI plugin extends the OX settings tree with a new subtree to access the &amp;quot;Antispam&amp;quot; management WEB UI of Spamexperts.com&lt;br /&gt;
&lt;br /&gt;
== OX Backend Plugin ==&lt;br /&gt;
&lt;br /&gt;
The backend plugin consists of a servlet which can create an authentication ticket for the currently active OX user by using the &lt;br /&gt;
Spamexperts.com API and then sends the ticket back to the UI plugin which will do the redirect to the external Spamexperts.com management WEB UI.&lt;br /&gt;
&lt;br /&gt;
= Configuration =&lt;br /&gt;
&lt;br /&gt;
You need to adapt the settings in &amp;lt;tt&amp;gt;/opt/open-xchange/etc/spamexperts.properties&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Settings can be separated in two sections:&lt;br /&gt;
&lt;br /&gt;
== SpamExperts UI integration ==&lt;br /&gt;
&lt;br /&gt;
Define your custom parameters in order to integrate your branded SpamExperts UI into Open-Xchange&lt;br /&gt;
&lt;br /&gt;
== SpamExperts SPAM/HAM learning integration ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: This requires backend version 7.6.0 or newer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Configure you personal parameters to access the SpamExperts IMAP server in order to use the SPAM/HAM&lt;br /&gt;
learning mechanism.&lt;br /&gt;
&lt;br /&gt;
In addition, you have to tell the Open-Xchange mail backend what spamhandler to use for SPAM/HAM learning.&lt;br /&gt;
This must be done in the configuration file &amp;lt;tt&amp;gt;/opt/open-xchange/etc/imap.properties&amp;lt;/tt&amp;gt;. You have to set&lt;br /&gt;
&lt;br /&gt;
 com.openexchange.imap.spamHandler=SpamExperts&lt;br /&gt;
&lt;br /&gt;
exactly like this, or the SPAM/HAM learning mechanism will not work.&lt;br /&gt;
&lt;br /&gt;
= Provisioning =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: This requires backend version 7.6.0 or newer.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In order to activate SPAM/HAM learning in OX Webmail, you have to turn that on for the users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Using create- or changeuser, provide the option &amp;lt;tt&amp;gt;--gui_spam_filter_capabilities_enabled true&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to add the spamexperts link to OX Webmail, provide the option &amp;lt;tt&amp;gt;--capabilities-to-add com.spamexperts&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: Administrator]]&lt;br /&gt;
&lt;br /&gt;
[[Category: OX6]]&lt;br /&gt;
[[Category: AppSuite]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Spamhandling]]&lt;/div&gt;</summary>
		<author><name>John-david.henderson</name></author>
	</entry>
	<entry>
		<id>https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:Configuring_portal_plugins&amp;diff=21834</id>
		<title>AppSuite:Configuring portal plugins</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-xchange.com/wiki/index.php?title=AppSuite:Configuring_portal_plugins&amp;diff=21834"/>
		<updated>2016-04-15T13:59:24Z</updated>

		<summary type="html">&lt;p&gt;John-david.henderson: /* Configuring the portal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- !!! --&amp;gt;&lt;br /&gt;
&amp;lt;!-- PLEASE APPLY CHANGES ONLY TO THE NEW TECHNICAL DOCUMENTATION: wd/frontend/web/documentation --&amp;gt; &lt;br /&gt;
&amp;lt;!-- !!! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Stability-stable}}&lt;br /&gt;
{{VersionFrom|7.4.0}}&lt;br /&gt;
&lt;br /&gt;
= Configuring portal plugins =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Synopsis:&#039;&#039; This article covers how to configure which plugins (&amp;quot;tiles&amp;quot;) are shown, whether they are mandatory or just suggested to the user.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Configuring the portal ==&lt;br /&gt;
&lt;br /&gt;
When running OX AppSuite you may want to specify a starting configuration for which tiles the portal shows and whether certain tiles are mandatory or not. This is especially useful when you are introducing your own tile implementations. To make this possible, the portal consists of three types of tiles: User tiles, eager tiles and protected tiles. User tiles are tiles that the user added herself to the portal page, eager tiles are those suggested by the installation which can be removed and protected tiles are set by the backend. &lt;br /&gt;
&lt;br /&gt;
In order to specify a tile, you will have to know about the configuration data to enter. You can use an appsuite installation to do that. If you want to configure a tile as eager or protected, navigate to the settings area of the portal page, add the tile you want and, in the JS console, enter:&lt;br /&gt;
&lt;br /&gt;
 require(&amp;quot;settings!io.ox/portal&amp;quot;).get(&amp;quot;widgets/user&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
and in the list find the tile you want to suggest to or force on your users. As an example, we&#039;ll use the birthday widget:&lt;br /&gt;
&lt;br /&gt;
 birthdays_0: Object&lt;br /&gt;
    color: &amp;quot;lightgreen&amp;quot;&lt;br /&gt;
    enabled: true&lt;br /&gt;
    id: &amp;quot;birthdays_0&amp;quot;&lt;br /&gt;
    index: 6&lt;br /&gt;
    inverse: false&lt;br /&gt;
    plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot;&lt;br /&gt;
    props: Object&lt;br /&gt;
    type: &amp;quot;birthdays&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In order to configure widgets on the backend we have to turn the above into a valid YAML structure:&lt;br /&gt;
&lt;br /&gt;
 birthdays_0:&lt;br /&gt;
    color: &amp;quot;lightgreen&amp;quot; # one of black, red, orange, lightgreen, &lt;br /&gt;
                        # green, lightblue, blue, purple, pink, gray&lt;br /&gt;
    enabled: true       # Has to be true &lt;br /&gt;
    index: &amp;quot;first&amp;quot;      # Where the widget is supposed to show up. &lt;br /&gt;
                        # Possible values are numbers, &amp;quot;first&amp;quot; or &lt;br /&gt;
                        # &amp;quot;last&amp;quot; &lt;br /&gt;
    inverse: false      # If true, the color is applied to the body &lt;br /&gt;
                        # of the tile and not the title. Can highlight &lt;br /&gt;
                        # particular tiles&lt;br /&gt;
    plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot; # The source file that contains the tile code&lt;br /&gt;
    type: &amp;quot;birthdays&amp;quot;   # The id of the widget type. Not the id above &lt;br /&gt;
                        # has to have the form [type]_[someNumber]&lt;br /&gt;
&lt;br /&gt;
Now we can use this snippet to configure the birthday widget in a variety of ways&lt;br /&gt;
&lt;br /&gt;
== I want to suggest a widget, but the user can remove it, if they don&#039;t like it ==&lt;br /&gt;
&lt;br /&gt;
For this, you can use the &amp;quot;eager&amp;quot; configuration method. Not that if you specify an eager or protected widget, all default widgets from Open-Xchange will not be configured as defaults anymore, so you might want to configure them as eager tiles as well. But let&#039;s stick to the birthday widget for now. &lt;br /&gt;
&lt;br /&gt;
* Add a file /opt/open-xchange/etc/settings/portal.yml&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal//widgets/eager/gen_0:&lt;br /&gt;
    birthdays_0:&lt;br /&gt;
        color: &amp;quot;lightgreen&amp;quot;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: &amp;quot;first&amp;quot;&lt;br /&gt;
        inverse: false&lt;br /&gt;
        plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot;&lt;br /&gt;
        type: &amp;quot;birthdays&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This means the widget will be enabled for users, but users can still disable it. If you want to, at a later time and since you&#039;ve made significant improvements to the tile, want to show it to the user again, you have to increase the &amp;quot;generation&amp;quot; of the widget configuration and offer it again:&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal/:&lt;br /&gt;
    generation: 1&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal//widgets/eager/gen_0:&lt;br /&gt;
    birthdays_0:&lt;br /&gt;
        color: &amp;quot;lightgreen&amp;quot;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: &amp;quot;first&amp;quot;&lt;br /&gt;
        inverse: false&lt;br /&gt;
        plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot;&lt;br /&gt;
        type: &amp;quot;birthdays&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal//widgets/eager/gen_1:&lt;br /&gt;
    birthdays_0:&lt;br /&gt;
        color: &amp;quot;lightgreen&amp;quot;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: &amp;quot;first&amp;quot;&lt;br /&gt;
        inverse: false&lt;br /&gt;
        plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot;&lt;br /&gt;
        type: &amp;quot;birthdays&amp;quot;&lt;br /&gt;
&lt;br /&gt;
All the &amp;quot;gen_[number]&amp;quot; entries up the tie io.ox/portal//generation will be used for this configuration. If a tile is deleted it is deleted only in that generation so can be reintroduced in a later portal configuration generation. If you want to keep the default tiles as used as a fallback for App Suite, you need this configuration to start out with:&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal//widgets/eager/gen_0:&lt;br /&gt;
    mail_0: &lt;br /&gt;
        plugin: &#039;plugins/portal/mail/register&#039;&lt;br /&gt;
        color: &#039;blue&#039;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: 1&lt;br /&gt;
    calendar_0: &lt;br /&gt;
        plugin: &#039;plugins/portal/calendar/register&#039;&lt;br /&gt;
        color: &#039;red&#039;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: 2&lt;br /&gt;
    tasks_0: &lt;br /&gt;
        plugin: &#039;plugins/portal/tasks/register&#039;&lt;br /&gt;
        color: &#039;green&#039;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: 3&lt;br /&gt;
    birthdays_0:&lt;br /&gt;
        plugin: &#039;plugins/portal/birthdays/register&#039;&lt;br /&gt;
        color: &#039;lightgreen&#039;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: 4&lt;br /&gt;
    twitter_0:&lt;br /&gt;
        plugin: &#039;plugins/portal/twitter/register&#039;&lt;br /&gt;
        color: &#039;pink&#039;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: 5&lt;br /&gt;
    linkedin_0:&lt;br /&gt;
        plugin: &#039;plugins/portal/linkedin/register&#039;&lt;br /&gt;
        color: &#039;lightblue&#039;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: 6&lt;br /&gt;
    &lt;br /&gt;
And then modify this as wanted for your deployment&lt;br /&gt;
&lt;br /&gt;
== Forcing a tile == &lt;br /&gt;
&lt;br /&gt;
Similarly to the eager tiles, tiles can be &amp;quot;protected&amp;quot;, i.e. they can not be moved, removed and disabled. The configuration for this looks like that:&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal//widgets/protected:&lt;br /&gt;
    birthdays_0:&lt;br /&gt;
        color: &amp;quot;lightgreen&amp;quot;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: &amp;quot;first&amp;quot;&lt;br /&gt;
        inverse: false&lt;br /&gt;
        plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot;&lt;br /&gt;
        type: &amp;quot;birthdays&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you want to allow movement of the widget, you can enable this in the following way:&lt;br /&gt;
&lt;br /&gt;
 io.ox/portal//widgets/protected:&lt;br /&gt;
    birthdays_0:&lt;br /&gt;
        color: &amp;quot;lightgreen&amp;quot;&lt;br /&gt;
        enabled: true&lt;br /&gt;
        index: &amp;quot;first&amp;quot;&lt;br /&gt;
        inverse: false&lt;br /&gt;
        plugin: &amp;quot;plugins/portal/birthdays/register&amp;quot;&lt;br /&gt;
        type: &amp;quot;birthdays&amp;quot;&lt;br /&gt;
        changeable:&lt;br /&gt;
            index: true&lt;br /&gt;
&lt;br /&gt;
In which case, users will be allowed to move the tile. &lt;br /&gt;
&lt;br /&gt;
One caveat in all this: After changing any of the above configuration, you will have to reload the UI *twice*, since App Suite uses read-through caching for the settings data.&lt;br /&gt;
&lt;br /&gt;
== Disabling a tile completely ==&lt;br /&gt;
The combination of making a tile both protected and disabling it makes it impossible for the user to enable it. From 7.6.0 on, this means it is not shown in the settings either. Before that, it was greyed out but still present.&lt;br /&gt;
&lt;br /&gt;
  io.ox/portal/:&lt;br /&gt;
    widgets:&lt;br /&gt;
      protected:&lt;br /&gt;
        quota_0:&lt;br /&gt;
          color: &amp;quot;red&amp;quot;&lt;br /&gt;
          id: &amp;quot;quota_0&amp;quot;&lt;br /&gt;
          enabled: false&lt;br /&gt;
          index: 1&lt;br /&gt;
          inverse: false&lt;br /&gt;
          plugin: &amp;quot;plugins/portal/quota/register&amp;quot;&lt;br /&gt;
          type: &amp;quot;quota&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[Category:UI]][[Category:AppSuite]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Portal]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Administrator]][[Category:Developer]]&lt;/div&gt;</summary>
		<author><name>John-david.henderson</name></author>
	</entry>
</feed>