Plugin WIKI page is great. Thanks a lot! People already started to add their plugins there!
Regards,
Roland
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Cor,
thanks for your advise ... i will change my plugin tomorrow.
When I add my plugin to repo, where should I store the plugin code?
Regards,
Oliver
Am 31.05.2009 um 23:31 schrieb Cor Bosman:
> Only thing id change is use your own config.inc.php file and call
> $this->load_config(). That way the central config.inc.php doesnt get
> cluttered with plugin config settings.
>
> I just changed the plugin doc to reflect this recent addition to the
> API.
>
> Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I've ported the Yubikey authentication plugin by dirkm to the new
plugin api.
Please have a look at my code and give me some advice for improvement.
Regards,
Oliver
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/eu/OPlltg5z/yubikey_auth.zip
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all, there doesnt seem to be a repository yet for plugins using the API.
Right now there are the example plugins in SVN, and i know of a few plugins
made by others, but id like to see a central spot where one can find API
plugins. What ideas are floating around for this? The moment 0.2.2 comes
out, I hope a lot of people will start making proper plugins..
Regards,
Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
First, apologise if this is already possible. I had a look at the
include_script function in the API and I don't think it is.
I am wondering what everyone thinks about allowing plugins to include
scripts from the core (like list.js) rather than having to copy them into
the plugin dir?
The possible problem with this is that if something changes in one of the
core JS files then its possible the plugin might need to be updated to work
with it. The advantage is that plugin maintainers would have one less file
to worry about.
Any one got any thoughts?
Thanks
Phil
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I’ve attached an updated Swedish localization of labels.inc and
messages.inc.
Regards,
Jonas Nasholm
Bitfuse Network
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/vj/EtxJSybT/sv_SE.zip
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all, i probably want to do something that isnt going to work well
anyways, but maybe someone has a good idea.
Through the api (message_headers_output) im adding a button next to
the address-add button on the From line. This second button adds the
sender to a centralized whitelist. To be nice, I want to remove the
button immediately after clicking, and thats all working fine. Just a
bit of JS to remove the button.
If a user is already in the whitelist (which i load on login_after), i
dont add the button, and if you click on the button I make sure the
whitelist is reloaded so future emails of this same sender dont get
the button either.
Im running into a little problem. message_headers_output is not always
called. If I read the next email, then go back to the previous email
where I just clicked the button (which was removed), the button re-
appears. This is not due to anything wrong with the plugin code, but
because RC sends Etags and If-Modified headers which my browser
happily uses to show me a cached version of the previous header.
Im assuming this is wanted behavior. The more caching the better I
guess, but in this case its biting me. Is there anyway I can prevent
this from happening? Or should I just give up on trying to show the
right thing?
(the same can be said for the addressbook-add button.. why show it if
you're already in the addressbook).
Any tips appreciated,
Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all,
I'm not sure if you like it, if I mail to devs list regarding plugin developement.
It might be a good idea to have a separate list to discuss plugin developement. I don't mean the disussion about the api itself. I'm thinking about plugin projects.
Regards,
Roland
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Devs,
I would need a simple patch for rcube_user.php.
My thought is to introduce ...
/**
* Return a list of all (incl. deleted) identities linked with this user
*
* @return array List of identities
*/
function list_identities_history($sql_add = '')
{
// get contacts from DB
$sql_result = $this->db->query(
"SELECT * FROM ".get_table_name('identities')."
WHERE user_id=?
$sql_add
ORDER BY ".$this->db->quoteIdentifier('standard')." DESC, name ASC, identity_id ASC",
$this->ID);
return $sql_result;
}
Or is there a way to get all identities including those with "deleted" flag by a plugin in another easy way?
I'm coding an hMail plugin to allow aliased login which adds the alias automatically to user's identites list.
I want to avoid that the identity is added again and again even if the user has decided to delete the automatically added identitiy previously.
Thanks for any advice.
Regards,
Roland
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi RoundCube devs
(Please CC, not on the list)
I've discovered an error in the 0.2.2-stable release, which makes it
impossible to use certain language files.
In the end of certain language files, there's a ^M (0x0D), which makes
PHP output a newline on inclusion, which makes the whole app break,
because there's a call to header() after the inclusion.
I've inlined the very simple patch to fix up the danish files:
{{{
Index: src/program/localization/da_DK/messages.inc
===================================================================
--- src/program/localization/da_DK/messages.inc (revision 689)
+++ src/program/localization/da_DK/messages.inc (working copy)
@@ -97,4 +97,3 @@
$messages['editorwarning'] = 'Al formatering af teksten forsvinder,
hvis der skiftes til ren tekst. Vil du fortsætte?';
?>
-
Index: src/program/localization/da_DK/labels.inc
===================================================================
--- src/program/localization/da_DK/labels.inc (revision 689)
+++ src/program/localization/da_DK/labels.inc (working copy)
@@ -264,4 +264,3 @@
$labels['GB'] = 'GB';
?>
-
}}}
However, a few more files show symptoms of problems, but I haven't
checked them out by hand:
$ grep -rl '^M' src/program/localization
src/program/localization/sr_CS/messages.inc
src/program/localization/sr_CS/labels.inc
src/program/localization/vi_VN/messages.inc
src/program/localization/vi_VN/labels.inc
src/program/localization/si_LK/messages.inc
src/program/localization/si_LK/labels.inc
src/program/localization/ne_NP/messages.inc
src/program/localization/ne_NP/labels.inc
I hope this fix can be included in the next stable release. In the
meantime, I'm making a private debian package with this patch in it.
P.S: Is there any plan to make an official Debian package -- or at least
support for compiling a Debian package from source? I'd be happy to
contribute the work I've done so far.
--
Med venlig hilsen / Best regards
Christian Iversen
Sikkerhed.org ApS
Fuglebakkevej 88 E-mail: support(a)sikkerhed.org
1. sal Web: www.sikkerhed.org
DK-2000 Frederiksberg Direkte: ci(a)sikkerhed.org
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all, im working on a plugin that needs to do some ajax calls. It's
all working, but im wondering if this is the right way to do it..
I create a button (in a template inside the plugin dir, so that recent
addition is working great):
<roundcube:button command="plugin.xs4all_greenlist-add" type="input"
class="button" label="xs4all_greenlist.xs4all_greenlist_add" />
In JS:
rcmail.register_command('plugin.xs4all_greenlist-add',
'xs4all_greenlist_add' , true);
function xs4all_greenlist_add()
{
rcmail.http_post('plugin.xs4all_greenlist-add',
'_greenlist_entry='+entry, true);
}
And in PHP:
$this->register_action('plugin.xs4all_greenlist-add', array($this,
'xs4all_greenlist_add'));
function xs4all_greenlist_add($args)
{
global $OUTPUT;
....
$OUTPUT->command('xs4all_greenlist_add_greenlist_row');
}
Up to here it was pretty straightforward. But i was fiddling a bit to
get the ajax return correct. It's returning a JSON reply with an exec
field that can execute a JS function. I ended up doing this in my js
file, otherwise the function couldnt be found:
rcube_webmail.prototype.xs4all_greenlist_add_greenlist_row = function()
{
.....
}
This seems to be working, but i just want to make sure this is the
correct way to handle this, before I end up having to change this
plugin later on.
Thanks,
Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all,
it's possible to set a property for set signature and cursor before the
message in a reply?
When we replay many times to an email your new text is in the bottom and
not good for reading.
Thanks
--
Sandro Pazzi
IdWeb s.r.l.
Viale Romagna 69/A - 06012 Citta' di Castello (PG)
Tel. 075 851 97 28
Fax 075 851 97 30
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hello Chris,
your message highlight plugin works great and is really good,
now i have update to current SVN and the message highlignt plugin dosn't work
can you patch this thats works with the current SVN.
Many Thanks
_______________________________________________
List info: http://lists.roundcube.net/dev/
I'm working on a new button in toolbar (mail.html and message.html
templates). This will be a popup menu like markmenu,
will contains container for plugins and three actions (for start):
- open message in new window
- show source (in new window)
- Download as .eml file
The button will be enabled in message view or in mailbox view when one
message is selected. I'll remove current viewsource button. So,
now I need your opinion about:
1. Should I add 'print' action to message menu, and remove print button
from toolbar? It's reasonable, print is a one-message-action (and we
need more place for plugin buttons).
2. I've got no image for the button, any ideas?
--
Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252
LAN Management System Developer http://lms.org.pl
Roundcube Webmail Developer http://roundcube.net
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hello Developers,
I have checked on google, but didn't find any relevant info from past
near...
So, a few days ago I have upgraded from first 0.2 to current stable
version,
and users said if somebody forward an email which contains attachment,
it doesn't arrive to recipient.
I've checked, and it's true.
When I forward an email which contains attachment (eg: a zipfile), it
visible
in "attachments" block on left top of display - but when I send it, and
read
at other address, the attachment isn't there.
Could anybody help me?
Thanks:
a.
_______________________________________________
List info: http://lists.roundcube.net/dev/
A.L.E.C wrote:
> BTW, plugins directory name is still hardcoded in rcube_plugin_api
> as $url, which is used in ressource_url (two ss!) and to build rcube_plugin::$urlbase.
>
Yes, you're right. I forgot about that. I'm not sure whether we should
introduce another config parameter which specifies the plugin directory
URL. This is not necessarily the same as the real 'plugins_dir' setting.
~Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
Here's a 2-line patch for the html2text class which is part of
RoundCube. I'm not sure whether or not you'll be interested in it
because it's just about making that class compatible with PHP 4.
I had to fix this specific problem because we (the Moodle project --
http://www.moodle.org) use your code to do HTML to text conversion when
mailing out forum posts to users and unfortunately we still have to
support PHP 4 in the latest stable version of Moodle.
Cheers,
Francois
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/7X/2Iskptr6/roundcube_html2text_.patch
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Resolved like inspired by Robert King. Thanks! Patch is not required
anymore.
I would just need your opinion about:
http://lists.roundcube.net/mail-archive/dev/2009-05/0000053.html
Regards,
Roland
_______________
function _load_config($plugin)
{
$rcmail = rcmail::get_instance();
$config = $rcmail->config->get('plugins_dir') . "/" . $plugin .
"/config/config.inc.php";
if(file_exists($config))
include $config;
else if(file_exists($config . ".dist"))
include $config . ".dist";
if(is_array($rcmail_config)){
$rcmail->config->merge($rcmail_config);
}
}
> ----- Original Message -----
> From: "Robert King" <robk(a)mun.ca>
> To: "RoundCube Dev" <dev(a)lists.roundcube.net>
> Sent: Sunday, May 17, 2009 5:42 PM
> Subject: Re: [RCD] Load plugin config from plugin folder
>
>
>> On Sun, 17 May 2009 13:03:37 -0230, Robert King <robk(a)mun.ca> wrote:
>>> In my plugins I've been calling a function in the plugin init of:
>>>
>>> class plugin_name extends rcube_plugin
>>> {
>>>
>>> public function init()
>>> {
>>> _load_config();
>>> }
>>>
>>> private function _load_config()
>>> {
>>> include('config.inc.php');
>>> $this->config = (array) $_config;
>>> }
>>>
>>> }
>>
>> Forgot this important detail:
>>
>> class plugin_name extends rcube_plugin
>> {
>> private $config;
>> ...
>> }
>>
>> --
>> Robert King
>> System Administrator
>> Computing & Communications
>> Memorial University
>> _______________________________________________
>> List info: http://lists.roundcube.net/dev/
>>
>
>
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all, a plugin question ive been wondering about. What is the
recommended way for a plugin to save longterm non-user configurable
data? Just an example, lets say I want to keep track on if ive shown
a MOTD page to a user, id have to save that information. But some
plugins may have much more extensive needs here. Basically any data
you want to save immediately without going through a save preferences
click.
It might be nice to have some api functions that allow a plugin to
save this kind of data without having to construct your own SQL. Any
ideas about this? Maybe it exists already and I just couldnt find.
Also, looking at the code it seems as if plugins through
save_preferences hook can add saved prefs, but this has a potential
for unintentional overlap. If 2 plugins decide to use the same name,
you'll override a previous config with the same name. Maybe RC should
add the plugin name or something to the prefs key?
Regards,
Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
I've rewritten my managesieve patch using plugin api and I've found a few issues:
1. Templates from plugin directory. I've commited patch from Roland Liebl
and it's possible now, but... images path is hardcoded to "plugins/plugin_name/...",
and will not work if someone will change plugins_dir.
2. include_script() includes script after rcmail variable initialization.
That's ok, but there's a one situation when it's a problem.
For 'html' output I must write:
$this->rc->output->add_script(sprintf("rcmail.managesieve_updatelist('%s', '%s', %d);",
isset($new) ? 'add' : 'update', $this->form['name'], $fid), 'foot');
instead of more unified form:
$this->rc->output->command('managesieve_updatelist', isset($new) ? 'add' : 'update', $this->form['name'], $fid);
3. Localization folder name should be constant for all plugins (hardcoded in api).
Creating plugins translator will be simpler then.
--
Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252
LAN Management System Developer http://lms.org.pl
Roundcube Webmail Project Developer http://roundcube.net
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I’ve attached an updated Swedish localization of messages.inc.
Regards,
Jonas Nasholm
Bitfuse Network
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/Y7/DpA6h7k5/sv_SE.zip
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Does anyone know why http://roundcubeforum.net is unresponsive?
I seem to get redirected to some gaming website.
I tried asking in the IRC channel last night, but I think everyone was
asleep :-)
Is the forum site run by the roundcube admins? Does anyone know if it will
be coming back?
--
Michael Crumm
mcrumm(a)gmail.com
_______________________________________________
List info: http://lists.roundcube.net/dev/
> Message: 10 Date: Tue, 19 May 2009 15:10:26 +0200 From: till <klimpong(a)gmail.com>
> Subject: [RCD] Cache buster? (Re: Trunk 2501 error javascript in osx)
>> > On Tue, 19 May 2009 14:11:13 +0200, "A.L.E.C" <alec(a)alec.pl> wrote:
>>> >> Sandro Pazzi wrote:
>>> >>
>>>> >>> I've installed the last version and I find this errors in osx firefox
>> > and
>>>> >>> safari.
>>>> >>>
>>>> >>> All works fine in firefox and safari on windows.
>>> >>
>>> >> Css cache issue. Clear browser's cache.
>
> Do we need a cache buster? E.g. skins/default/css/main.css?v=RCVERSION
>
> Or we include the version in the filename for releases?
>
> Thoughts anyone?
>
I think version in the filename is better, that way browsers can cache the css.
The same can be done for js files. When I patched a js file to solve a bug,
that required full refresh in clients; you don't know when the cache will be
invalidated, somehow file mtime is not very reliable (?)
--
Gokdeniz Karadag
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi RoundCube users and list lurkers
We've recently published two new releases of the RoundCube Webmail package.
Version 0.2.2 is a minor update to the stable 0.2 branch. Beside some
bug fixes this version now supports STARTTLS for IMAP connections.
A bit further down the road we have the 0.3-beta version which now
includes the long awaited plugin API. This version is still under
development and we don't recommend to replace a productive version
with 0.3-beta. Nevertheless we'd like you to install and test it and
get the idea of how to write plugins. Read
http://trac.roundcube.net/wiki/Doc_Plugins to get started and find
some sample plugins within the package or more by browsing the SVN
repository: http://trac.roundcube.net/browser/trunk/roundcubemail/plugins
You can download both releases from http://roundcube.net/downloads and
as usual you're kindly requested to submit your reports to our bug
tracker: http://trac.roundcube.net/report
Have a lot of fun!
Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/
I dropped a note to brett [at] ... I'm just a moderator and can't do anything. But it looks like some kind of database injection:
<META HTTP-EQUIV="Refresh"
CONTENT="0; URL=http://xsaimex.mybrute.com/"><br />
<b>Warning</b>: include_once(includes/VBSEO_VB_CONFIG) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in <b>/var/www/vhosts/roundcubeforum.net/httpdocs/vbseo.php ...........
_______________________________________________
List info: http://lists.roundcube.net/dev/
On Tue, May 19, 2009 at 3:10 PM, Sandro Pazzi <sandro(a)idweb.it> wrote:
> On Tue, 19 May 2009 14:11:13 +0200, "A.L.E.C" <alec(a)alec.pl> wrote:
>> Sandro Pazzi wrote:
>>
>>> I've installed the last version and I find this errors in osx firefox
> and
>>> safari.
>>>
>>> All works fine in firefox and safari on windows.
>>
>> Css cache issue. Clear browser's cache.
>
> You are right.
>
> Thanks
>
Do we need a cache buster? E.g. skins/default/css/main.css?v=RCVERSION
Or we include the version in the filename for releases?
Thoughts anyone?
Till
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi all,
I've installed the last version and I find this errors in osx firefox and
safari.
All works fine in firefox and safari on windows.
Last release works fine on every enviroment tha I tested was the 2423.
Thanks
--
Sandro Pazzi
IdWeb s.r.l.
Viale Romagna 69/A - 06012 Citta' di Castello (PG)
Tel. 075 851 97 28
Fax 075 851 97 30
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/jk/diAHQBqG/Immagine_1.pnghttp://detached.gigo.com/rc/jk/diAHQBqG/Immagine_2.png
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Devs,
this is following up of http://lists.roundcube.net/mail-archive/dev/2009-05/0000053.html.
I think it might be a good idea to load plugin configurations from the plugin folder instead of the requirement to edit the main configuration. The main configuration file will get crowdy soon if there will be hopefully lots of plugins.
There was also a request in RoundCubeForum to do so by "corbosman" (http://www.roundcubeforum.net/plug-ins/4699-change-password-hmailserver-5-1…).
Please see attached suggestion and let me know if you will accept the modifications. I'm just in process to update MyRoundCube to use the new Plugin API and have to know if I can rely on this method.
Regards,
Roland
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/cb/J8Um9KKY/rcube_config.php.patch
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
In case people that can fix this hadnt noticed, the roundcubeforums.net
site has been broken (or worse?) for about a day now. It redirects someplace
else..
Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
Here's the updated PT_BR translation (messages.inc).
--
Victor Benincasa
http://netbit.com.br
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/QF/EdjT8yvA/messages.rar
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
translation
by d.nigaresh@paiwastoon.com.af
18 May '09
18 May '09
Dear all
I am so happy to join you guys . and this is a fantastic time for me .
my name is daud ("Nigarish") I life in Afghanistan
I work with Paiwastoon IT ltd as localisation manager .
we have a team they translate open source materials to Afghan local
language (Dari & Pashto) . so for we translated the round cube and i will
send to the forum
by for now ,
Daud (Nigarish)
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi devs,
I'm going to update DNS-Blacklist plugin (MyRoundCube) to play with the new Plugin API.
It checks if an IP is blacklisted. This is very usefull for public webmails to keep off spammers. It helped me very much on http://mail4us.net to keep spammers off my public test environment for MyRoundCube.
How would you like to see it? Should it lock out a user already at the front page (login) or is it better just to block certain tasks like sending messages, setting a forwarder or an autoresponder and let the user access for other tasks like reading his messages even he is blacklisted?
Regards,
Roland
_______________________________________________
List info: http://lists.roundcube.net/dev/
Is it possible to import a skins watermark.html into a plugin?
--
Robert King
System Administrator
Computing & Communications
Memorial University
_______________________________________________
List info: http://lists.roundcube.net/dev/
The registration for the roundcube trac seems broken.
http://trac.roundcube.net/register does nothing. Also, there is no obvious
link to the registration page.
--
/Ludvig Widman
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I've been working on #1485659, and found that it's basically a duplicate
of #1484678.
The issue is atomicness of session variables.
I have a patch in #1485659 that solves the problem, but not completely.
What we need, in my opinion, is a per-variable row in the session table.
And, if possible, reads/writes per variable. Maybe even replace all
references to $_SESSION[] with functions like rcube_sess_get() and
rcube_sess_set() or something like that.
Any thoughts?
Robin
_______________________________________________
List info: http://lists.roundcube.net/dev/
In attached file.
--
Best regards,
Artur D Smolkin.
www.roundcube.ruwww.almatek.ru
Telephone: +7 (913) 957-49-57
E-mail: artsmolkin(a)ya.ru
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/3M/y5vKRQv4/labels.inc
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
Attached patch saves search_mods checkbox settings in the preferences
database.
Since this changes UI behaviour, I won't commit without feedback. So,
please, shoot.
Robin
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/Ys/1v66zSLU/save_search_mods.200.patch
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
As Title....
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/aj/kVMWaJls/zh_TW.zip
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hello,
Like most web applications, roundcube is intended to be used on a
single machine.
In a high load environment, simple LVS source ip balancing may not be
enough to simply dispatch evenly end users to several roundcube
instances.
I happen to have a situation where many customers (multiple 10s if not
100s) are logging in all at once and using the same proxy server,
hence all hitting the same backend roundcube machine.
It may be possible to get around this problem using a shared DB for
the session and use an NFS partition for the upload folder, but it
then creates single points of failure (and I happen to already have
some nginx reverse proxy installed).
In order to perform per user balancing of request, ticket 1485721 [1]
contains a small patch [2] to roundcube to add a new cookie to the
roundcube session.
This cookie can be used by nginx (for example) to perform a layer 7
routing of the request, an example of such configuration is attached
to the ticket [3]
This patch is used in production and is as harmless as harmless can
be. It does not change anything used by roundcube itself.
I would be interrested in hearing any comment the list may have about
it.
Another benefit for me is that it allowed me to go from an active/
passive lvs setup to an active/active one (using wackamole [4])
Regards,
Thomas Mangin
[1] http://trac.roundcube.net/ticket/1485721
[2] http://trac.roundcube.net/attachment/ticket/1485721/roundcube-nginx-cluster…
[3] http://trac.roundcube.net/attachment/ticket/1485721/nginx-config-example.txt
[4] http://packages.ubuntu.com/hardy/net/wackamole
_______________________________________________
List info: http://lists.roundcube.net/dev/
Cor,
>> I am not exactly sure what you are referring to when speaking of
>> the SSL Session ID but AFAIU the information would be encrypted
>> (assuming the web server perform is running SSL) and not available
>> on the proxy.
>
> It must be possible somehow, as our hardware based loadbalancers do
> it as well.
I understand now that your load balancer is as well your SSL
accelerator. In that scenario, it makes sense.
I may wait for NGINX to add the feature :) or just use Pound which
seems to have it as well (never noticed it was there before).
>> It's extremely easy in your case. Just grab a small plugin example
>> from SVN. Then change the hooks to login_after and login_failed.
>> As a source patch, add a hook for logout and call that hook in your
>> plugin as well. (but I wouldnt be surprised if a logout hook would
>> show up soon in SVN, as it seems really useful for other plugins).
>
> Just read a bit here:
>
> http://trac.roundcube.net/wiki/Doc_Plugins and here: http://trac.roundcube.net/wiki/Plugin_Hooks
Thanks, if I can do it without having to patch the code and use the
provided API - I will do so (when I have time) and just then post the
result.
I can live with my patch for the time being.
> I dont have a need for this plugin, and I really doubt many people
> do. But you can do it, its not hard. We use Foundry hardware
> loadbalancers, which I agree with Till is a better solution for this
> problem. Then again, we may be a little bigger, so its easier to
> justify the costs.
I know about them, they are not a bad product but the cost does not
justify a purchase for my usage when I can perform the same in
software without CAPEX atm.
Citrix Netscaler AS 7000 are supposed to be good as well.
I will take from this discussion that you/the roundcube team are not
really interested in merging this patch.
Could someone close the ticket in that case as I am not able to do it.
Thank you to everyone for your time in answering me and all the
information shared.
Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Cor,
> Can't you use SSL Session ID to do loadbalancing? Assuming you force
> SSL on everyone.
I am not exactly sure what you are referring to when speaking of the
SSL Session ID but AFAIU the information would be encrypted (assuming
the web server perform is running SSL) and not available on the proxy.
I do force SSL on everyone neither at the moment (but the idea is
attractive to prevent dead-broken proxies caching the JS badly and
causing grief to my users on upgrade). Furthermore, I am using NGINX
to perform the HTTPS encapsulation (which mean that the cookie trick
works even with SSL).
> It should be possible to use the API. If I look at your patch, you
> can do
> your set_backend() in the API call login_after.
> You can use login_failed for one of your kill_backend() calls, but
> the other 2 would need an added api hook. I think we might want api
> hooks there anyways, so one can always clean up after a plugin in
> case a user disappears. I think a 'logout' api hook would be very
> welcome.
Thank you for giving me more details, about how it could be done. I
have a very limited understanding of roundcube internals (only what
was necessary to write the patch).
You most likely know better than I do what can and can not be done and
if so and you think it is the way forward, feel free to change my code
all together if you feel inclined to.
My interest is in not supporting any out-of-tree patches on my
installation :)
> I dont think you'd need one in the session loss code. If they lose
> their session they re-login and a new cookie would get set in
> set_backend().
Make sense.
Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
I’ve attached an updated Swedish localization of labels.inc.
Regards,
Jonas Nasholm
Bitfuse Network
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/FJ/3ZOP2XoO/sv_SE.zip
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
I updated my local development branch to the current trunk release, and I
noticed an odd change with one of my plugins. The plugin was developed to
keep the prying eyes of the public away from the at times unstable
development branch of roundcube that I am using. The following is the
paraphrased version of the plugin:
class foobar extends rcube_plugin
{
function init()
{
$this->add_hook('list_mailboxes', array($this, 'check_access'));
}
function check_access($args)
{
$rcmail = rcmail::get_instance();
list ($uid, $host) = split("@", $rcmail->user->get_username());
if ( !in_array($uid, $this->allow_list))
{
$rcmail->output->command('display_message', $this->gettext('unauth'),
'error');
$rcmail->logout_actions();
$rcmail->kill_session();
}
return $args;
}
}
What changed is that the forced logout action no longer occurs. Any
insight into why?
--
Robert King
System Administrator
Computing & Communications
Memorial University
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Chris,
the Message Highlight Plugin works fine and is a
important and nice Feature, some little Labels
are only in french and in the color picker only in
english and the Button add to new Message Highlight
Rules use the Label from Add new Identity a better
solution are New Message Highlight or Rule.
Many thanks for this plugin
Eric
_______________________________________________
List info: http://lists.roundcube.net/dev/
Cor,
> Couldnt you do all of this in a plugin using the API. Possibly
> adding some hooks in places you need them. The more hooks the
> merrier imho.
Thank you for the idea but I doubt it would work. I need to set the
cookie on login and invalidate it when the session is killed BUT NOT
when the 302 redirect is sent back on login.
Anyone please feel free to let me know if I am mistaken.
Regards,
Thomas
_______________________________________________
List info: http://lists.roundcube.net/dev/
How does the show_message/display_message key value replacement function
operate?
I've been trying the following:
$rcmail->output->command(
'display_message', $this->gettext('offline'), 'error', array('reason' =>
'maintenance' ));
with the localization string:
$labels['offline'] =
"Webmail is currently unavailable due to $reason.";
How do I link the
replacement value from my localization string and the call to
display_message?
--
Robert King
System Administrator
Computing &
Communications
Memorial University
_______________________________________________
List info: http://lists.roundcube.net/dev/