Commit graph

11917 commits

Author SHA1 Message Date
Carlos Pérez-Aradros Herce 9784995d41 Ensure sogo-tool loads all available products 2016-02-23 17:16:02 +01:00
Jesús García Sáez 698918abf9 Fix prepareRightsForm, keep the highest role
userRights is sorted highest to lowest right so we have to assign
only the first right found for each type
2016-02-23 15:08:15 +01:00
Enrique J. Hernández Blasco 12e952eb55 oc: Honor calendar WebMail UI permissions on OpenChange library
By expanding roles from the given ACL to have these values as flags
inside the OpenChange library. This only applies to Calendar and
Tasks folders which stored four different access rights to three
different types of events/tasks.

As the events and tasks are stored in the same table, I have added
two new classes to manage permissions in the same way and this
avoids the code duplication called MAPIStoreCalTask(Folder|Message).
2016-02-23 10:10:48 +01:00
Javier Amor García f388d180ae oc-mail: Better management of nested multipart types
Instead of treating all the message either as alternative or mixed with
this changeset the MIME type of the parent part is used.
This allows a correct disposition of the message in the cases when
nested multiparts elements are used.
Also in mixed parts we convert between plain text and HTML as needed.
2016-02-22 17:19:44 +01:00
Jesús García Sáez 36d257e1c7 Merge pull request #254 from zentyal/jag/test-for-string-encoding-for-encoding-named-methods
Tests for SOPE string-encoding-for-encoding-named-methods branch
2016-02-22 16:32:17 +01:00
Ludovic Marcotte 8e94c33a0f (fix) avoid truncating XML entities 2016-02-19 09:08:24 -05:00
Jesús García Sáez 8d04a83731 Merge pull request #245 from zentyal/jag/html-part-not-assume-charset
oc-mail: Use UTF-8 when there are parts with multiple charsets
2016-02-18 18:15:27 +01:00
Javier Amor García d2e7fdf4d2 Tests for SOPE string-encoding-for-encoding-named-methods branch 2016-02-18 11:01:56 +01:00
Javier Amor García e1b1812364 oc-mail: Use UTF-8 when they are parts with multiple charsets
If we have multiple parts with different encodings we recode
all HTML parts to UTF-8 and we use it as message charset.
This is neccesary because Outlook assummessa single charset
for all the message.

Also we convert the end of line in text/plain to <br/> tag
when showing them as HTML in multipart/mixed parts.
2016-02-17 19:02:14 +01:00
Ludovic Marcotte 32bb1456e2 (feat) attachment size upload using WOMaxUploadSize (fixes #3510 and #3135) 2016-02-16 16:28:11 -05:00
Francis Lachapelle d01f5d36fa (css) Fix overlap of elements in preferences 2016-02-16 14:31:34 -05:00
Enrique J. Hernández Blasco 17b2e3946c oc-notes: Point which folder class must be used while opening subfolders
It was using MAPIStoreDBFolder class instead of specialised version
MAPIStoreNotesFolder and thus the shared subfolders where set to create
messages as normal messages instead of notes.
2016-02-16 14:56:38 +01:00
Enrique J. Hernández Blasco 51408bbde0 oc-tasks: Add edit/delete own and Folder Contact/Owner sharing perm
By storing these custom MAPI roles in the ACL. Take into account that
a task folder is shared with a calendar folder with the same name, therefore
permissions are shared and overwritten from different Outlook sections.

The extension 'X-SOGO-COMPONENT-CREATED-BY' is used to store the task
creator in both Outlook and SOGo Webmail.

The PidLidTaskOwner is not yet properly managed and we are always returning
the folder owner but to effects of sharing that extension is used by now
which matches a little more with what the user expects until we fix
the task ownership defined in [MS-OXOTASK].
2016-02-16 14:56:36 +01:00
Enrique J. Hernández Blasco 9d461d646f oc-contacts: Add edit/delete own and Folder Contact/Owner sharing perm
By storing these custom MAPI roles in the ACL.

An extension field called 'X-OPENCHANGE-CREATOR' is created in the vcard
to validate the creator/owner of the contact in the shared folder.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco dd32c659f6 oc-calendar: Add edit/delete own and Folder Contact/Owner sharing perm
By storing these custom MAPI roles in the ACL.

The extension field 'X-SOGO-COMPONENT-CREATED-BY' is used to store the
event creator when it is done from Outlook. It is the same field SOGo
uses when an event is created from a shared folder in the webmail.

The creator and the organizer/owner of the event can be different and it can
be used from external sources by checking the organizer field. This matches
the specification from [MS-OXOCAL] Section 1.1 which defines the organizer
as the owner or creator of the event.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco 12ac1d30de oc: Implement edit own and delete own in GCSFolders
And returning back PidTagCreatorName.

This is done by checking the owner of the resource if the given
permission is restricted to edit/delete own items.

This requires a52bc3b to work in calendar folders as it requires to store and retrieve
the MAPI custom permissions in the ACL.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco 8b45ee886b oc: Use the same permission set original from MAPIStoreDBFolder
To keep backwards compatibility.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco 1ca1a273d9 oc-notes: Implement edit own and delete own permissions
By storing the PidTagCreatorName on creation and checking when
trying to edit or delete an specific message.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco 76e586deca oc: Added custom MAPI permissions
This set is only available at sogo-openchange library scope but
they are useful to provide all permissions set from any MAPI client
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco a9f336c69d oc: Check permissions on read opening a shared folder
This is a security issue that allowed a user to read the number
of messages and its subjects when it does not have any permission to read.

Now the user cannot see other's folder without asking for me to the owner.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco b92ca092ed oc: Remove specialised PidTagAccess and PidTagAccessLevel
As the generic one from MAPIStoreMessage applies here since
we use subscriberCan* protocol to know the values from these
properties.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco dcb1d2f574 oc: API to know if a message can be deleted by a subscriber
Instead of asking general container. This gives the possibility to
perform the deletion depending on the data from the message, for instance,
the user creator.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco bcf94c5b43 oc: Check FolderOwner right to modify permissions
As specified by [MS-OXCPERM] Section 3.2.5.2, the ModifyPermissions ROP
is only possible to users which have this right.

After this changeset, we check the active user can modify permission
list. This is a security fix.
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco 8c8ad301b4 oc: Check FolderVisible permission to show permission list
When the active user is not the owner of the resource as specified
by [MS-OXCPERM] Section 3.2.5.1
2016-02-16 14:55:21 +01:00
Enrique J. Hernández Blasco 026c37709a oc: Mimetise PidTagRights behaviour to PidTagMemberRights
As specified by [MS-OXCFOLD] Section 2.2.2.2.2.8 we exclude
FreeBusySimple and FreeBusyDetailed right flags.
2016-02-16 14:55:20 +01:00
Enrique J. Hernández Blasco c45baad188 oc: Read FAI messages from shared folder must be possible
At least, to be able to read a shared folder using Online mode.
It requests the folder to know if the message can be read by
current active user.
2016-02-16 14:55:06 +01:00
Enrique J. Hernández Blasco e86e3b2481 oc: Get new change numbers using resource's owner
Instead of using the connected active user.

Although this provides no changes in the result, it could be depending
on changes from the backend so it'd better have it accurated to what
the OpenChange DB API offers.
2016-02-16 14:54:58 +01:00
Ludovic Marcotte 6de15edb9c (fix) don't mark content as truncated if it's not 2016-02-16 08:32:40 -05:00
Enrique J. Hernández Blasco 967cc29c4e oc: Query for fmids in behalf of owner's resource
Instead of using connected active user because the fmids are related
to the root folder (context) owner. This avoids returning back incorrect
identifiers which mostly collide with already associated URLs.
2016-02-16 11:43:21 +01:00
Ludovic Marcotte a2078da5f0 Updated NEWS file regarding cherry-picked commits 2016-02-15 17:39:42 -05:00
Ludovic Marcotte 2193dbb678 Make sure we don't go overbounds 2016-02-15 17:39:15 -05:00
Ludovic Marcotte cb9f26cc1f (fix) support EAS MIMETruncation 2016-02-15 17:39:01 -05:00
Jesús García Sáez 0e49f7ed87 Merge pull request #251 from zentyal/ejhernandez/mapistore-error
oc: Use enum mapistore_error instead of int
2016-02-15 20:55:13 +01:00
Jesús García Sáez b62d58d4d7 Merge pull request #249 from zentyal/ejhernandez/proper-fix-user-many-groups-calendar-sharing
Keep all roles in calendar folder ACLs
2016-02-15 20:53:14 +01:00
Jesús García Sáez c99fd1d93c Merge pull request #248 from zentyal/ejhernandez/groups-domain-based-uid
Support for groups using EnableDomainBasedUID configuration
2016-02-15 20:18:51 +01:00
Enrique J. Hernández Blasco e08ee9a265 oc: Use enum mapistore_error instead of int
This specifies a little the scope of the variable to make it
more realistic with the actual values it may have. We do have
a static typed compiled language, why don't we use it?
2016-02-15 15:44:14 +01:00
Ludovic Marcotte e4473a656b (fix) make sure our heartbeat interval is always greater than the internal one 2016-02-12 13:08:17 -05:00
Ludovic Marcotte 7cbf019742 Updated NEWS file regarding previous commit 2016-02-11 15:07:01 -05:00
Ludovic Marcotte 456ff7d5a3 (fix) avoid EAS bday offset (fixes #3518) + small fix in previous commit 2016-02-11 15:05:26 -05:00
Ludovic Marcotte 5f0061205f Updated NEWS file regarding previous commit 2016-02-11 14:35:50 -05:00
Ludovic Marcotte 11a2bcfffd (fix) EAS issue with attachments in 2nd-level mailboxes (fixes #3505) 2016-02-11 14:35:01 -05:00
Enrique J. Hernández Blasco 15779c2cfb Keep all roles in calendar folder ACLs
Instead of keeping only the highest access roles. This reverts
2c678101 to fix handling of ACLs with multiple groups.

This is done because OpenChange library stores other roles/permissions
in the ACLs that have limited scope to the MAPI protocol and it
maintains an homogeneous returned data with other folders by returning
the actual data is stored in the DB.

By sorting the roles, we give the ability to callers to validate
permissions more efficiency (less loops) and keep the right highest
access level. As an example, check
[SOGoApppointmentFolder:roleForComponentsWithAccessClass:forUser]
for details.
2016-02-11 16:54:49 +01:00
Enrique J. Hernández Blasco 3b0cfa00f7 Support for groups using EnableDomainBasedUID conf
Using LDAP as source, the group entry must have a valid
group objectClass such as posixGroup or group and have a
valid UIDField which does not include the domain.

With this changeset, SOGo is aware of these groups when it has
an email and you can share a component such as a calendar with
the member of the group.
2016-02-11 15:59:54 +01:00
Ludovic Marcotte 0b1fbf0dee Updated NEWS file regarding previous commit. 2016-02-10 15:05:47 -05:00
Ludovic Marcotte 499dbf68ae (fix) allow resources to prevent invitations (fixes #3410) 2016-02-10 15:05:00 -05:00
Francis Lachapelle 4c6c0a3644 Update ChangeLog 2016-02-05 12:16:34 -05:00
Francis Lachapelle 1c65424242 Preparation for release 2.3.8 2016-02-05 12:16:13 -05:00
Francis Lachapelle 08bf6d528b Update translations 2016-02-05 12:14:48 -05:00
Francis Lachapelle a9083004ef Update CKEditor to version 4.5.7 2016-02-05 12:11:36 -05:00
Ludovic Marcotte ec02c41d9b Updated NEWS file 2016-02-05 10:09:47 -05:00