You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
615 lines
27 KiB
615 lines
27 KiB
<chapter id="groupware-with-kontact">
|
|
|
|
<chapterinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<personname>
|
|
<firstname>Marco</firstname>
|
|
<surname>Menardi</surname>
|
|
</personname>
|
|
<email>gnu@kde.org</email>
|
|
</author>
|
|
</authorgroup>
|
|
|
|
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
|
|
|
</chapterinfo>
|
|
<title>Sharing data with &kontact; via <acronym>IMAP</acronym></title>
|
|
|
|
<sect1 id="kontact-imap-intro">
|
|
<title>Introduction</title>
|
|
|
|
<para>For my small office, I was looking for a long time for a
|
|
<acronym>PIM</acronym> solution that let me share data, so my secretary and
|
|
I can share contacts, appointments and so on. Being a &tde; user, I've heard
|
|
about the Kroupware project and wait its completion. But when I saw how
|
|
complicated is the architecture and setup of the
|
|
<application>Kolab</application> server 1.0 (the server side of the
|
|
project), I gave up, waiting for an easier to deploy
|
|
<application>Kolab</application> 2.0. In any case, the
|
|
<application>Kolab</application> stuff was clearly too much for my
|
|
needs. Fortunately in the &tde; wiki I've found some piece of
|
|
<acronym>IRC</acronym> conversation where they were talking about sharing
|
|
data without the <application>Kolab</application> infrastructure... mmm so
|
|
interesting!</para>
|
|
|
|
<para>For small offices and needs, you can have &kontact; use shared data
|
|
without the need of installing the <application>Kolab</application> server
|
|
or another groupware backend. It can work with just an
|
|
<acronym>IMAP</acronym> server, that can be easily set up.</para>
|
|
|
|
<para>My scenario is a server with Debian unstable and &kde; 3.4. I access
|
|
&kontact; and other fabulous GNU/Linux apps from windows using Cygwin/X,
|
|
while waiting Wine project to be able to run the last Windows programs I
|
|
need (and that are not available under GNU/Linux). I want to share contacts,
|
|
events, todo, notes with my secretary.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="kontact-imap-whatis">
|
|
<title>What is <acronym>IMAP</acronym></title>
|
|
|
|
<para>This definition is from the <ulink
|
|
url="http://computeruser.com">ComputerUser.com High-Tech Dictionary:</ulink>
|
|
<blockquote><para>Internet Message Access Protocol. A protocol that allows a
|
|
user to perform certain electronic mail functions on a remote server rather
|
|
than on a local computer. Through IMAP the user can create, delete, or
|
|
rename mailboxes; get new messages; delete messages; and perform search
|
|
functions on mail. A separate protocol is required for sending mail. Also
|
|
called Internet Mail Access Protocol.</para></blockquote> </para>
|
|
|
|
<para>So it can be considered a data storage. To use it you you need an
|
|
<acronym>IMAP</acronym> server, such as <application>Cyrus</application>,
|
|
<application>Courier</application> or <application>UW</application>.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="kontact-kolab-or-imap">
|
|
<title><application>Kolab</application> or <acronym>IMAP</acronym>?</title>
|
|
|
|
<para><application>Kolab</application> brings the ability to share data
|
|
between different clients. It makes possible for your secretary to use
|
|
<application>Outlook</application> and you use &kontact;, for
|
|
instance.</para>
|
|
|
|
<para>You will have a configuration interface which does user management, mail
|
|
account setup, a central <acronym>LDAP</acronym> config data and addressbook
|
|
server, spam and virus filtering, vacation scripts, free busy list handling,
|
|
resource handling (rooms, cars), groups, distribution lists, automatic
|
|
invitation handling, &etc;</para>
|
|
|
|
<para>But that can cause initial setup troubles. For a newbie like me it
|
|
means: a long long frustrating nightmare, and too much complexity to manage
|
|
once working. So no, thanks, I'll go to simple
|
|
<acronym>IMAP</acronym>.</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="kontact-imap-cyrus">
|
|
<title>How to set up <acronym>IMAP</acronym> server <application>Cyrus</application></title>
|
|
|
|
<para>My choice is <application>Cyrus</application>, that is part of the
|
|
<application>Kolab</application> set of software, so if l will go for
|
|
<application>Kolab</application> in the future, at least I'm acquainted with
|
|
it.</para> <para>Let's start the installation and the setup!</para>
|
|
|
|
<para>Become <systemitem class="username">root</systemitem>.</para>
|
|
|
|
<screen># <userinput><command>apt-get</command> <command>install</command> cyrus21-imapd cyrus21-common cyrus21-admin cyrus21-client sasl-bin sasl2-bin</userinput>
|
|
<computeroutput>Installing cyrus21-imapd...</computeroutput><lineannotation>The installer asks something I've not understood about an search address... I just pressed <keycap>Enter</keycap></lineannotation>.</screen>
|
|
|
|
<para>The installer also created the user <systemitem
|
|
class="username">cyrus</systemitem> that is in the (automatically created)
|
|
group <systemitem class="groupname">sasl</systemitem>, that is the
|
|
<quote>owner</quote> of all cyrus files. At the end with <command>ps
|
|
<option>-A</option></command> you can find the new processes:
|
|
<command>cyrmaster</command> and <command>notifyd</command>.</para>
|
|
|
|
<para>The real problem in setting up <application>Cyrus</application> is the
|
|
authentication, just because it's not trivial and I'm a newbie, with limited
|
|
knowledge about what I'm doing.</para>
|
|
|
|
<para><application>Cyrus</application> can use different
|
|
<acronym>SASL</acronym> (Simple Authentication and Security Layer)
|
|
mechanisms, the default being sasldb (it stores usernames and passwords in
|
|
the SASL secrets file <filename>sasldb</filename>), but also getpwent,
|
|
kerberos4, kerberos5, PAM, rimap, shadow and LDAP are supported.</para>
|
|
|
|
<para> Since I don't want to define users/passwords different than the ones
|
|
that access my &Linux; box I choose then <quote>shadow</quote> mechanism so
|
|
<application>Cyrus</application> will use &Linux; passwords for
|
|
authenticate.</para>
|
|
|
|
<para>To do so we have to tell sasl to use <command>saslauthd</command> as
|
|
password authentication method, and then setup <command>saslauthd</command>
|
|
to use <quote>shadow</quote> (or <quote>getpwent</quote>) as the
|
|
authentication mechanism.</para>
|
|
|
|
<para>OK, let's start!</para>
|
|
|
|
<para>As <systemitem class="username">root</systemitem>, change the Linux
|
|
password of <systemitem class="username">cyrus</systemitem> user:</para>
|
|
|
|
<screen># <userinput><command>passwd <option>cyrus</option></command></userinput></screen>
|
|
|
|
<para>Enter the password you like (and you will remember) we will use for
|
|
this example <quote>cyrus</quote> as the <application>cyrus</application>
|
|
administrator password.</para>
|
|
|
|
<screen># <command>vi</command> <filename>/etc/imapd.conf</filename></screen>
|
|
|
|
<programlisting>sasl_pwcheck_method: <userinput>saslauthd</userinput> <lineannotation>instead of the default <literal>auxprop</literal></lineannotation></programlisting>
|
|
|
|
<para>remove the <literal>#</literal> remark from the line:</para>
|
|
|
|
<programlisting>#admins: cyrus</programlisting>
|
|
|
|
<para>this way you can administer <application>cyrus</application> logging
|
|
in as <systemitem class="username">cyrus</systemitem> user (what a fantasy I
|
|
have!)</para>
|
|
|
|
<screen># <userinput><command>vi</command> <filename>/etc/default/saslauthd</filename></userinput></screen>
|
|
|
|
<para>Uncomment the line:</para>
|
|
|
|
<programlisting># START=yes</programlisting>
|
|
|
|
<para>(otherwise the <application>saslauthd</application> will not start at
|
|
boot time, even if referenced in some <filename
|
|
class="directory">/etc/rcx.d</filename>!)</para>
|
|
|
|
<para>and instead of <literal>MECHANISMS="pam"</literal> put
|
|
<userinput>MECHANISMS="shadow"</userinput> this way at the boot a
|
|
<command>saslauthd</command> <option>-a
|
|
<parameter>shadow</parameter></option> will be executed.</para>
|
|
|
|
<para>Once exited from your editor, restart <application>sasl</application>
|
|
and <application>cyrus</application>.</para>
|
|
|
|
<para>To test <acronym>IMAP</acronym>:</para>
|
|
|
|
<screen> <userinput><command>su</command> <option>cyrus</option></userinput>
|
|
$ <userinput><command>imtest</command> <option>-m login -p imap localhost</option></userinput></screen>
|
|
|
|
<para>You are prompted for the <systemitem
|
|
class="username">cyrus</systemitem> (user) password, so enter it.</para>
|
|
|
|
<para>If the user <systemitem class="username">cyrus</systemitem> is
|
|
correctly authenticated, the following lines will appear:</para>
|
|
|
|
<screen><computeroutput>S: L01 OK User logged in
|
|
Authenticated.</computeroutput></screen>
|
|
<para>To exit type <userinput>. logout</userinput> (&ie; dot space <quote>logout</quote>)</para>
|
|
|
|
<para>Now add a user named <systemitem
|
|
class="username">groupware</systemitem> and set a password for it, using
|
|
your usual system tools. It should be in an unprivileged group such as
|
|
<systemitem class="groupname">nobody</systemitem> and does not require a
|
|
login shell or a home directory.</para>
|
|
|
|
<para>Now I have to create the user and an <acronym>IMAP</acronym> in
|
|
<application>cyrus</application> also:</para>
|
|
|
|
<screen># <userinput><command>cyradm</command> <option>--user cyrus localhost</option></userinput>
|
|
after entering the password for the admin user <systemitem class="username">cyrus</systemitem>, you get the prompt <prompt>localhost></prompt>
|
|
<prompt>localhost></prompt> <userinput><command>cm</command> <option>user.groupware</option></userinput>
|
|
<prompt>localhost></prompt> <userinput><command>lm</command></userinput> <lineannotation>lists the mailbox only just created</lineannotation>
|
|
<computeroutput>user.groupware (\HasNoChildren))</computeroutput>
|
|
<prompt>localhost></prompt> <userinput><command>quit</command></userinput></screen>
|
|
|
|
<para>You can type <userinput><command>help</command></userinput> for a list
|
|
of available commands.</para>
|
|
|
|
<para>You can check what has happened with:</para>
|
|
|
|
<screen># <userinput><command>ls</command> <option>-l</option> <filename class="directory">/var/spool/cyrus/mail/g/user/groupware</filename></userinput>
|
|
<computeroutput>total 12
|
|
-rw------- 1 cyrus mail 4 Oct 29 20:55 cyrus.cache
|
|
-rw------- 1 cyrus mail 155 Oct 29 20:55 cyrus.header
|
|
-rw------- 1 cyrus mail 76 Oct 29 20:55 cyrus.index</computeroutput></screen>
|
|
|
|
<para>Now you should be able to connect with an <acronym>IMAP</acronym> client
|
|
as the <systemitem class="username">groupware</systemitem> user and see the
|
|
<literal>INBOX</literal>.</para>
|
|
<note><para>In the <acronym>IMAP</acronym> protocol, selecting the mailbox
|
|
<literal>INBOX</literal> is a magic word, a sort of <quote>alias</quote> for
|
|
the above directory structure. The client sees <literal>INBOX</literal>, and
|
|
the <acronym>IMAP</acronym> server maps it in the <filename
|
|
class="directory">/var/spool/cyrus/mail/...</filename> folder and file
|
|
structure.</para></note>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="kontact-imap-clients">
|
|
<title>How to setup &kontact; clients</title>
|
|
|
|
<para>I connect to my GNU/Linux office server PC (a sort of "black box"
|
|
without monitor and keyboard) from 2 &Windows; 2000 PC with
|
|
<application>Cygwin/X</application>, using them as a X-Window server (in the
|
|
near future I hope to replace both with 2 mini-itx thin clients using the
|
|
LTSP). With this setup every user runs &kontact; on the same machine where
|
|
<application>Cyrus</application> is installed and running
|
|
(localhost).</para>
|
|
|
|
<para>To have &kontact; work with <acronym>IMAP</acronym>, there are these
|
|
steps to complete:</para>
|
|
|
|
<procedure>
|
|
|
|
<step><para>Create an <acronym>IMAP</acronym> account on the
|
|
<application>Cyrus</application> for fake <systemitem
|
|
class="username">groupware</systemitem> user (already previously
|
|
done!)</para></step>
|
|
|
|
<step><para>Create/configure an <acronym>IMAP</acronym> account in &kmail;
|
|
for login as that user</para></step> <step><para>Use tderesources to make
|
|
&kontact; components work with data taken from <acronym>IMAP</acronym>
|
|
source</para></step>
|
|
|
|
<step><para>Enable groupware functionality and make related subfolders of
|
|
that <acronym>IMAP</acronym> <literal>INBOX</literal> (if not
|
|
already)</para></step>
|
|
|
|
<step><para>Enjoy &kontact; and shared data through
|
|
<application>Cyrus</application> IMAP</para></step>
|
|
|
|
</procedure>
|
|
|
|
<para>So login to &tde; with the first <quote>real user</quote> account you
|
|
want to provide groupware functionality to.</para>
|
|
|
|
<para>Let's create the IMAP account in &kmail;.</para>
|
|
|
|
<para>Run &kontact; and select <guilabel>Mail</guilabel> (the &kmail;
|
|
component). From the menu choose
|
|
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure KMail
|
|
</guimenuitem><guilabel>Accounts</guilabel><guilabel>Receiving</guilabel></menuchoice> tab, press the <guibutton>Add...</guibutton> button. You will then be
|
|
prompted for the type of your email account, and select
|
|
<guilabel>disconnected IMAP</guilabel> (not just
|
|
<guilabel>IMAP</guilabel>). Then in the <guilabel>General</guilabel> tab
|
|
enter the following data:</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><guilabel>Account Name:</guilabel> <userinput>office_gwdata</userinput></term>
|
|
<listitem>
|
|
<para>A name that will be used for the <quote>local</quote> folder that
|
|
points to this <acronym>IMAP</acronym> account.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><guilabel>Login:</guilabel> <userinput>groupware</userinput></term>
|
|
<listitem>
|
|
<para>The <application>Cyrus</application> user we have chosen as
|
|
<quote>owner</quote> of all of the office data</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry><term><guilabel>Password:</guilabel></term>
|
|
<listitem>
|
|
<para>The password of the <systemitem
|
|
class="username">groupware</systemitem> user.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><guilabel>Host:</guilabel> <userinput>localhost</userinput></term>
|
|
<listitem>
|
|
<para>Remember for our example, the &kontact; client runs on the same
|
|
computer as the <acronym>IMAP</acronym> server</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term><guilabel>Port:</guilabel> <userinput>143</userinput></term>
|
|
<listitem>
|
|
<para>The default</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>Check <guilabel>store IMAP password</guilabel>
|
|
so you will not be asked for it next time you run &kontact;. Check the
|
|
<guilabel>Enable interval mail checking</guilabel> and set a value in
|
|
minutes.</para>
|
|
|
|
<para>Note that we have checked the <guilabel>disconnected IMAP</guilabel>
|
|
type account. This has the effect that a copy of the groupware data is
|
|
stored <quote>locally</quote> to the client (under the home folder), and it
|
|
is synchronized every time the client connects. This seems very inefficient,
|
|
since your data is duplicated many times (&ie; if you have 10 users that use
|
|
&kontact;, you have 10+1 times the data), but it is the only way to make
|
|
things run fast, because at every connection &kontact; has to fetch all data
|
|
and have &korganizer; and &kaddressbook; interpret it. If you use
|
|
<quote>disconnected IMAP</quote> data is cached locally, and only the
|
|
<quote>delta</quote> (&ie; the data that has changed) is sent.</para>
|
|
|
|
<para>On the other end, if your users run &korganizer; on the same PC that
|
|
runs the <acronym>IMAP</acronym> server, it seems reasonable to use
|
|
<acronym>IMAP</acronym> (that is called <quote>online IMAP</quote>) to save
|
|
space, since transfer speed should not be an issue. But unfortunately this
|
|
does not work because &kontact; does not update automatically the
|
|
<guilabel>Calendar</guilabel> folder in <quote>online IMAP</quote>, so you
|
|
are not updated when someone adds events (you must manually switch to
|
|
&kmail; application and click on the <guilabel>Calendar</guilabel>
|
|
folder). In addition, at start up when it does read
|
|
<guilabel>Calendar</guilabel> folders, you may see a tremendous flicker and
|
|
slow data updates.</para>
|
|
|
|
<para>Now we have to tell &kontact; to use <acronym>IMAP</acronym> as the
|
|
data source for it's various components. From the &kmenu;, choose
|
|
<guimenuitem>Run command</guimenuitem>, run <userinput><command>tdecmshell
|
|
tderesources</command></userinput>. In the combo box select
|
|
<guilabel>Contacts</guilabel>, then press the <guibutton>Add...</guibutton>
|
|
button, and choose <guilabel>Addressbook on IMAP Server via KMail</guilabel>. Then select that new line and
|
|
press <guibutton>Use as Standard</guibutton> button. Do the same for
|
|
<guilabel>Calendar</guilabel> and <guilabel>Notes</guilabel>.</para>
|
|
|
|
<para>Now we have to enable the &kmail; (and as a consequence, the whole
|
|
&kontact;) groupware functionality:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Choose from the menu
|
|
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
|
|
KMail</guimenuitem><guilabel>Misc</guilabel><guilabel>Groupware</guilabel></menuchoice></para>
|
|
</step>
|
|
<step>
|
|
<para>Check <guilabel>Enable IMAP resource functionality</guilabel></para>
|
|
</step>
|
|
<step>
|
|
<para>Choose <guilabel>English</guilabel> as <guilabel>Language of the
|
|
groupware folders</guilabel> (this is in case you already have the folders
|
|
in the <acronym>IMAP</acronym> server created by a different program in a
|
|
different language).</para>
|
|
</step>
|
|
<step>
|
|
<para>Now move to <guilabel>Resource folder are in account</guilabel> and
|
|
select the the <guilabel>Inbox</guilabel> subfolder of the
|
|
<guilabel>office_gwdata</guilabel> folder.</para>
|
|
<para>Leave <guilabel>Hide groupware folders</guilabel> unchecked for now,
|
|
so we can see that happens. You can return here and check it once everything
|
|
is clear.</para>
|
|
</step>
|
|
<step>
|
|
<para>When you press OK you are prompted with:
|
|
<computeroutput>&kmail; will now create the required folders for the IMAP
|
|
resource as subfolders of Inbox</computeroutput> </para>
|
|
<para>If you do not want this, press <guibutton>No</guibutton>, and the
|
|
<acronym>IMAP</acronym> resource will be disabled. Press
|
|
<guibutton>Yes</guibutton> (this happens only the first time with the first
|
|
<quote>real user</quote>). You will immediately see that in the &kmail;
|
|
folder tree, under
|
|
<menuchoice><guilabel>office_gwdata</guilabel><guilabel>Inbox</guilabel></menuchoice>
|
|
these subfolders are created:</para>
|
|
<simplelist>
|
|
<member>Calendar</member>
|
|
<member>Contacts</member>
|
|
<member>Notes</member>
|
|
<member>Tasks</member>
|
|
<member>Journal</member>
|
|
</simplelist>
|
|
<para>if you now do a:</para>
|
|
<screen># <command>ls</command> <option>-l /var/spool/cyrus/mail/g/user/groupware/</option>
|
|
<computeroutput>drwx------ 2 cyrus mail 144 Oct 31 16:36 Calendar
|
|
drwx------ 2 cyrus mail 144 Oct 31 16:36 Contacts
|
|
drwx------ 2 cyrus mail 144 Oct 31 16:36 Journal
|
|
drwx------ 2 cyrus mail 144 Oct 31 16:36 Notes
|
|
drwx------ 2 cyrus mail 144 Oct 31 16:36 Tasks
|
|
-rw------- 1 cyrus mail 4 Oct 31 15:28 cyrus.cache
|
|
-rw------- 1 cyrus mail 155 Oct 29 20:55 cyrus.header
|
|
-rw------- 1 cyrus mail 76 Oct 31 15:28 cyrus.index</computeroutput></screen>
|
|
|
|
<para>As you see, the <guilabel>office_gwdata Inbox</guilabel> is stored not
|
|
local to the &kontact; current user home, but in the <acronym>IMAP</acronym>
|
|
<systemitem class="username">groupware</systemitem> user's folders.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Now &kontact; is ready to work and store data there. In the calendar
|
|
application, if &kmail; <acronym>IMAP</acronym> account was of type
|
|
<quote>disconnected</quote>, the <guilabel>resource</guilabel> window should
|
|
display the item <guilabel>Imap resource</guilabel> with 3 subitems, that
|
|
are paths to local home files. Instead, the <guilabel>Contacts</guilabel>
|
|
application does not show subitems below the <guilabel>Imap
|
|
resource</guilabel>.</para>
|
|
|
|
<para>You can now login to &tde; with a different username and set up
|
|
his/her &kontact; client in a very similar manner:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Open &kontact; and in the <guilabel>Mail</guilabel> component add an
|
|
<acronym>IMAP</acronym> account specifying as <guilabel>host</guilabel> the
|
|
computer where <application>Cyrus</application> server runs (in my case:
|
|
<literal>192.168.1.3</literal>).</para>
|
|
|
|
<para>Remember to check the <guilabel>Enable interval mail
|
|
checking</guilabel> and set a value in minutes. When you confirm, you are
|
|
not prompted for the subfolder creation (since they are found in the
|
|
<acronym>IMAP</acronym> server), and you see them in the folder tree.</para>
|
|
</step>
|
|
<step>
|
|
<para>Activate the groupware functionality to be able to save data in the
|
|
<acronym>IMAP</acronym> server.</para>
|
|
</step>
|
|
</procedure>
|
|
<para>Beware that in <quote>disconnected <acronym>IMAP</acronym></quote>,
|
|
data are transmitted from a client to <acronym>IMAP</acronym> server only
|
|
when the clients connects to check for new mail. So if you have your
|
|
&kontact; clients with an <guilabel>interval mail checking</guilabel> of,
|
|
for instance, 5 minutes, in the worst case you have a 10 minutes delay
|
|
between the event being written and it's appearance to the other
|
|
users.</para>
|
|
</sect1>
|
|
<sect1 id="kontact-imap-readonly">
|
|
<title>How to have Read Only Access</title>
|
|
|
|
<note><para>Beware that I've been confirmed that Notes
|
|
<acronym>IMAP</acronym> implementation in &kontact; prior to version 1.01 is
|
|
broken, so this setup will not work for them, so you want to use them, you
|
|
need to use the previous setup.</para></note>
|
|
|
|
<para>In the previous setup, we have the same <quote>fake</quote> user, named
|
|
<systemitem class="username">groupware</systemitem>, that is used by all the
|
|
<quote>real</quote> &kontact; users (&ie; <systemitem
|
|
class="username">tony</systemitem>, <systemitem
|
|
class="username">rohn</systemitem>, <systemitem
|
|
class="username">amanda</systemitem>, &etc;) through the
|
|
<acronym>IMAP</acronym> account with it's login and password. But this way
|
|
every real user has the same read/write permissions of the others, since
|
|
everyone connects as the user <systemitem
|
|
class="username">groupware</systemitem> to the <acronym>IMAP</acronym>
|
|
server.</para>
|
|
|
|
<para>To limit access to some users (typically, providing read-only access),
|
|
we can use the <acronym>ACL</acronym> (Access Control Lists).</para>
|
|
|
|
<para>Select in &kmail; a subfolder of <guilabel>office_gwdata</guilabel>
|
|
inbox, for instance <guilabel>Calendar</guilabel>, and right click the
|
|
mouse. Select <guilabel>Properties</guilabel><guilabel>Access
|
|
Control</guilabel> tab. Here you can enter the users you want give access to
|
|
this folder and what they can do.</para>
|
|
|
|
<para>Just to experiment trying to exchange events, we give
|
|
<quote>All</quote> permission to the user <systemitem
|
|
class="username">mary</systemitem></para>
|
|
|
|
<para>At <application>cyrus</application> level (in the
|
|
<acronym>PC</acronym> that runs <acronym>IMAP</acronym> server cyrus, with
|
|
<application>cyrus</application> tools), we first need to add the user
|
|
<systemitem class="username">mary</systemitem>, so it's an
|
|
<acronym>IMAP</acronym> recognized user, and create an
|
|
<acronym>IMAP</acronym> folder for her.</para>
|
|
|
|
<para>Then we login to GNU/Linux as <systemitem
|
|
class="username">mary</systemitem> and enter &kontact;. As previously shown,
|
|
we will setup an <acronym>IMAP</acronym> account in &kmail; with the same
|
|
data but the one of the user (instead of the fake user <systemitem
|
|
class="username">groupware</systemitem> and it's password, we will use
|
|
<systemitem class="username">mary</systemitem> and her password).</para>
|
|
|
|
<para>In &kmail; folder tree, this time you will see this structure:
|
|
<menuchoice><guimenu>office_gwdata</guimenu><guisubmenu>user</guisubmenu>
|
|
<guisubmenu>groupware</guisubmenu><guimenuitem>Calendar and
|
|
Tasks</guimenuitem></menuchoice>. Check the mail
|
|
(<menuchoice><guimenu>File</guimenu><guimenuitem>Check
|
|
Mail</guimenuitem></menuchoice>) and you will also have an
|
|
<quote>inbox</quote> folder under <quote>office_gwdata</quote>.</para>
|
|
|
|
<para>Now enable &kmail; groupware functionality, and in <guilabel>Resource
|
|
folders are subfolders of</guilabel> put the
|
|
<guimenuitem>inbox</guimenuitem> that is subfolder of
|
|
<quote>office_gwdata</quote>.</para>
|
|
|
|
<para>Now enable &kmail; groupware functionality, and in <guilabel>Resource
|
|
folders are subfolders of</guilabel> put the
|
|
<guimenuitem>inbox</guimenuitem> that is subfolder of
|
|
<guisubmenu>office_gwdata</guisubmenu>.</para>
|
|
|
|
<para>Now you have two branches of folder under
|
|
<quote>office_gwdata</quote>:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para><quote>inbox</quote> with Calendar, Contacts, Notes, Tasks and
|
|
Journal, that are saved on <systemitem class="username">mary</systemitem>
|
|
<acronym>IMAP</acronym> folders on the <acronym>IMAP</acronym> server</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para><quote>user</quote>, with the subfolder <quote>groupware</quote> and
|
|
the subfolders to which <systemitem class="username">mary</systemitem> has
|
|
access to (in this example, Calendar and Tasks)</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>&RMB; click on the <quote>user</quote> <quote>Calendar</quote> and
|
|
check if it's of type Calendar (if not, set it to be), and also if
|
|
<quote>user</quote><quote>Tasks</quote> is of type Tasks.</para>
|
|
<para>Now in Calendar you have two available <acronym>IMAP</acronym>
|
|
resources to write against, so if you create a new event, you are prompted
|
|
which one use (or if you left the local resources available, you have
|
|
3!).</para>
|
|
<para>You have go to the lower left small window in Calendar, the one that
|
|
shows available resources, and uncheck the ones that don't point to
|
|
<guilabel>.groupware.directory</guilabel> path (see the tail part of each
|
|
resource path).</para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="kontact-imap-credits">
|
|
<title>Credits</title>
|
|
|
|
<para>I'm a newbie, and for this howto I've only provided my time and my
|
|
will. For the knowledge I have really to thank some guys in freenode
|
|
channels for their competence, patience and helpfulness.</para>
|
|
|
|
<itemizedlist>
|
|
<title>Special thanks to:</title>
|
|
<listitem>
|
|
<para>For the <application>Cyrus</application> <acronym>IMAP</acronym> part
|
|
in #cyrus channel:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>[protagonist] Andy Morgan <email>morgan@orst.edu</email></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>[plixed] Okke Timm <email>okke.timm@web.de</email></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
<listitem>
|
|
<para>For the &kontact; part in #kontact channel:</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>[till] Till Adam <email>adam@kde.org</email></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>[dfaure] David Faure <email>faure@kde.org</email></para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>[mdouhan] Matt Douhan <email>matt@fruitsalad.org</email></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Thank a lot guys!</para>
|
|
|
|
<para>Ah, and there is also me, [markit] Marco Menardi
|
|
<email>mmenaz@mail.com</email></para>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="kontact-imap-further-reading">
|
|
<title>Further Reading</title>
|
|
|
|
<itemizedlist>
|
|
<title>Reference</title>
|
|
<listitem><para>KDE: <ulink url="http://www.kde.org">http://www.kde.org</ulink></para></listitem>
|
|
<listitem><para>&kontact; website: <ulink url="http://www.kontact.org">http://www.kontact.org</ulink></para></listitem>
|
|
<listitem><para>Kroupware project: <ulink url="http://www.kroupware.org">http://www.kroupware.org</ulink></para></listitem>
|
|
<listitem><para>&kde; Community Wiki: <ulink url="http://wiki.kde.org">http://wiki.kde.org</ulink></para></listitem>
|
|
<listitem><para>Wine project: <ulink url="http://www.winehq.org">http://www.winehq.org</ulink></para></listitem>
|
|
<listitem><para>Cygwin/X project <ulink url="http://x.cygwin.com">http://x.cygwin.com</ulink></para></listitem>
|
|
<listitem><para>LTSP project: <ulink url="http://www.ltsp.org">http://www.ltsp.org</ulink></para></listitem>
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
|
|
</chapter>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: xml
|
|
sgml-omittag:nil
|
|
sgml-shorttag:nil
|
|
sgml-namecase-general:nil
|
|
sgml-general-insert-case:lower
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:0
|
|
sgml-indent-data:true
|
|
sgml-parent-document:("index.docbook" "book" "chapter")
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|