#  Copyright (C) 2002  Stanislav Sinyagin
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.

# $Id: wd.messaging.pod,v 1.1.1.1 2010-12-27 00:04:36 ivan Exp $
# Stanislav Sinyagin <ssinyagin@yahoo.com>
#
#

=head1 RRFW Working Draft: Messaging subsystem

Status: pending implementation.
Date: Jun 30 2004. Last revised:

=head2 Introduction

Due to the modular and flexible architecture of RRFW, nothing prevents
us from having the possibility of user messages displayed in RRFW pages.
This design document describes the concept of this functionality.

=head2 Description

The messaging subsystem will allow the RRFW users to leave comments and
short messages directly at the RRFW pages. Those may be remarks about the
graph contents, troubleshooting journal, etc.

Each user is uniquely identified by RRFW ACL susbsystem. We introduce several
new attributes and privileges for messaging functionality. Privilege objects
are the tree names.

Attributes:

=over 4

=item * email

The user's e-mail where the notifications will be sent

=item * msgnotify

When set to true value, e-mail notifications will be sent to this users.

=back

Privileges:

=over 4

=item * PostMessages

allows the user to add messages to the tree objects.

=item * DisplayMessages

allows the user to see all messages for the tree

=item * ReceiveNotifications

allows the user to receive e-mail notifications. For those notifications
generated by Messages, C<DisplayMessages> must be granted too.

=item * DeleteMessages

allows the user to delete messages from the tree objects

=item * EditMessages

allows the user to change any message

=item * EditOwnMessages

allows the user to change his/her own messages

=back

The C<acledit> program will have two additional options that simplify
administration: C<--msguser> will grant all privileges except C<DeleteMessages>
and C<EditMessages>, and C<--msgadmin> will grant all messaging privileges.

The messaging options database will contain parameters that each user can tune
for himself or herself:

=over 4

=item * Notify when

a) any new message in all trees; b) (default) new message for
objects that I commented only.

=item * Notification format

a) plain text (default); b) HTML; c) RSS 2.0

=item * Subject line format

The format pattern with keywords like C<$TREE>, C<$PATH>, C<$AUTHOR>,
C<$MSGID>, etc.

Default:

  [rrfw $MSGID] $TREE $AUTHOR: $PATH

=back

Each message will have the status of Read/Unread per each user in the system.

On the tree chooser page in RRFW Web interface, the user will be shown
the unread messages.

RRS 2.0 feed will be provided for messages export and for integration with
other messaging systems.


=head1 Author

Copyright (c) 2004 Stanislav Sinyagin E<lt>ssinyagin@yahoo.comE<gt>
