Mailing List Archive

Introducing myself and a few changes to davical
Dear davical developers,

my name is Michael and I am a student and working as a technical
administrator at a university in Germany.

I just want to say hello to you guys and thank you for the great work
that was done so far on this project. Also I wanted to inform you that
I'm new to this mailing list and will be watching and helping out in the
future :)

I have started using davical a few months ago. I found a bunch of issues
that needed to be fixed in davical, and as I am firm in PHP coding, I
managed to fix a few of them on my own. I also added a few new features
to davical which might be interesting for other people as well. And I am
willing to provide my changes to the general public.

I have never used git before, but I'm getting into it, so I'm going to
commit my branch to git in the near future.

Here is a list of modifications that I did, so you get a first impression:

Interface:
----------
* Heavily modified the menu structure to something more usable. I will
go into details about this later. Maybe we can discuss whether my
structure makes sense and it should be included in trunk.

* Added a page which gives users a listing of all available calendars.
This includes calendars they own, calendars that are owned by a group in
which the user is member, calendars with custom principal grants for the
user, and public calenders. The calendar listing outputs the full URL to
the calendar, such that users can copy the URL and paste it into their
calendaring application for subscription. This is nifty, believe me!

Configuration:
--------------
* There is an issue with the apache rewrite rule as it is specified on
your wiki. See http://wiki.davical.org/w/Talk:Apache_Config for details.

LDAP Driver:
------------
* Fixed an issue in group synchronization. Existing groups were ignored
and groups were created anew every time synchronization was run, because
of improper checking for empty arrays.

* Added a blacklist for groups to the configuration file, so you can
exclude groups from synchronization.

* Created stand-alone script that can be called from command-line (e.g.
by cron) to force LDAP group synchronization. This way, new users can
automatically have their group memberships corrected. See
http://wiki.davical.org/w/Talk:LDAP_groups for the script.

* The LDAP driver is working pretty well for me, using OpenLDAP with
anonymous binding. Unfortunately, sometimes the connection would fail.
This leads to Thunderbird/Lightning thinking that the password was
wrong. Ultimately, Thunderbird completely drops the saved password and
will ask for it again. This can become quite annoying. As a workaround,
I added a retry feature to the LDAP driver. If specified in the
configuration file, the driver will try to reconnect a specified amount
of times, waiting for a specified time interval in between retries.

Access Restrictions:
--------------------
* Because I am providing this service to a lot of non-admin users, I
added access restrictions to all administrative tasks, including: adding
users, editing OTHER users, viewing group memberships of others.


I bet I forgot a few more modifications, but this list should suffice
for now to give you an idea of my changes :)

Feedback is always appreciated.

Cheers,

Michael


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4086 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.morphoss.com/pipermail/davical-dev/attachments/20100901/9da9d4f4/attachment.bin>
Introducing myself and a few changes to davical [ In reply to ]
On Wed, 2010-09-01 at 15:46 +0200, Michael Rausch wrote:
> Dear davical developers,
>
> my name is Michael and I am a student and working as a technical
> administrator at a university in Germany.
>
> I just want to say hello to you guys and thank you for the great work
> that was done so far on this project. Also I wanted to inform you that
> I'm new to this mailing list and will be watching and helping out in the
> future :)
>
> I have started using davical a few months ago. I found a bunch of issues
> that needed to be fixed in davical, and as I am firm in PHP coding, I
> managed to fix a few of them on my own. I also added a few new features
> to davical which might be interesting for other people as well. And I am
> willing to provide my changes to the general public.
>
> I have never used git before, but I'm getting into it, so I'm going to
> commit my branch to git in the near future.

Hi Michael,

Thanks for the work you're doing. I look forward to seeing it :-)

Are you doing your changes against the current HEAD? I've finally
managed to get some time to concentrate on DAViCal, after far too long a
period of only getting small bits of time here and there, and so there
are many changes recently to the HEAD.

Hopefully none of what I have done impacts on where you have been
working, since I am mainly working on core CalDAV (/CardDAV) things.

The best way to send changes for inclusion in the main project is
through small, clearly described patches. Sadly, it seems that the
longer that I have to spend reviewing a patch, the less likely I am to
find the time to do so, and I really do want to receive patches. Of
course over time I come to understand a person's coding style, and to
trust their work, and I can spend less time reviewing things.

Ideally code should also follow the existing style of DAViCal, such as
with if / else looking like:

if ( test condition ) {
}
else {
}

and so forth. Although it is inevitably annoying to work within someone
else's style it is even more annoying to work within the styles of
several other people.


> Here is a list of modifications that I did, so you get a first impression:
>
> Interface:
> ----------
> * Heavily modified the menu structure to something more usable. I will
> go into details about this later. Maybe we can discuss whether my
> structure makes sense and it should be included in trunk.

I'm very amenable to receiving patches to the Admin UI. It is not a
focus of my work in general, and I know it needs some good UX work on
it, so I look forward to hearing about your ideas in more detail.


> * Added a page which gives users a listing of all available calendars.
> This includes calendars they own, calendars that are owned by a group in
> which the user is member, calendars with custom principal grants for the
> user, and public calenders. The calendar listing outputs the full URL to
> the calendar, such that users can copy the URL and paste it into their
> calendaring application for subscription. This is nifty, believe me!

Sounds great :-)

If you want work, it would be great to see the ability for a user to
create a ticket or a binding through the UI also.


> Configuration:
> --------------
> * There is an issue with the apache rewrite rule as it is specified on
> your wiki. See http://wiki.davical.org/w/Talk:Apache_Config for details.

It's a wiki: be bold :-)

I try and review changes to the wiki about once a month, but it keeps me
from hacking on DAViCal, so I probably don't spend enough time looking
at the details. I missed your talk page modifications.


> LDAP Driver:
> ------------
> * Fixed an issue in group synchronization. Existing groups were ignored
> and groups were created anew every time synchronization was run, because
> of improper checking for empty arrays.
>
> * Added a blacklist for groups to the configuration file, so you can
> exclude groups from synchronization.
>
> * Created stand-alone script that can be called from command-line (e.g.
> by cron) to force LDAP group synchronization. This way, new users can
> automatically have their group memberships corrected. See
> http://wiki.davical.org/w/Talk:LDAP_groups for the script.
>
> * The LDAP driver is working pretty well for me, using OpenLDAP with
> anonymous binding. Unfortunately, sometimes the connection would fail.
> This leads to Thunderbird/Lightning thinking that the password was
> wrong. Ultimately, Thunderbird completely drops the saved password and
> will ask for it again. This can become quite annoying. As a workaround,
> I added a retry feature to the LDAP driver. If specified in the
> configuration file, the driver will try to reconnect a specified amount
> of times, waiting for a specified time interval in between retries.

I've received a couple of other patches to the LDAP driver (it's
something of a blind spot for me) so you might want to confirm these
fixes still apply to HEAD before sending each one to me.


> Access Restrictions:
> --------------------
> * Because I am providing this service to a lot of non-admin users, I
> added access restrictions to all administrative tasks, including: adding
> users, editing OTHER users, viewing group memberships of others.

Great work :-)

Thanks,
Andrew McMillan.

--
------------------------------------------------------------------------
andrew (AT) morphoss (DOT) com +64(272)DEBIAN
Your lucky number has been disconnected.
------------------------------------------------------------------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.morphoss.com/pipermail/davical-dev/attachments/20100902/1752f604/attachment.pgp>