Workspaces

MatchPoint workspaces can be used to build solutions for collaboration scenarios, where workspaces are created on demand by end-users without administrative permissions. Workspaces are based on standard SharePoint sites, therefore whenever a MatchPoint workspace is created, an SPWeb is created. Alternatively, a workspace can be based on a MatchPoint provisioning template, which can be configured and deployed faster and easier than standard SharePoint site templates.

A MatchPoint workspace is a standard SharePoint web with extended functionality:

  • A workspace is specified centrally within a WorkspaceTemplateConfiguration.
  • Within this configuration, metadata fields are specified for describing the workspace content
  • For each workspace, a WorkspaceTag can be created, which is inherited to the workspace's content. This allows an easy identification of a workspace or any content within a workspace.
  • Permissions on a workspace can be configured using a role management concept.
  • The actual structure of workspace (e.g. lists, pages, etc.) are applied either via a standard SharePoint site template or via an easy to configure, central ProvisioningConfiguration from MatchPoint.
  • Workspaces are created and managed using a Workspace Editor Web Part. To apply tags to a workspace, the ImageTag Web Part can be used.

When a new workspace is created using the Workspace Editor Web Part, a workspace list item is automatically created within a "Workspace" document library. The document library is created for every workspace template that is configured in the system. Location and title of the library can be specified within the WorkspaceTemplateConfiguration file. The list item for a workspace contains all metadata fields that are configured for the workspace template.

Since each workspace has such a list item, workspaces can be aggregated (i.e. for a Data Grid Web Part) very easily and independent from SharePoint Search Service Application using a WorkspaceDataProvider. This is especially convenient when the physical workspaces are distributed over multiple site collections or even web applications.

Workspace Template Configuration

MatchPoint workspaces are specified in a WorkspaceTemplateConfiguration file. Within this file, the general settings for the workspace are defined, for instance the location of new workspaces or whether a new site collection is to be created for each new workspace.

Depending on the configuration of the workspace template configuration file, users can create either a new SharePoint site (an SPWeb at the specified URL) or a new site collection, where the actual workspace web will be represented by the root web.

The TemplateId property specifies a unique ID (GUID) that identifies the workspace template. Therefore, it is important to ensure that the IDs are in fact unique. If a new workspace template configuration is created, this is done automatically. However, when configurations are copied, it is possible that an ID is used multiple times. In this scenario, the ID has to be corrected manually.

Workspace Tag

A workspace can be configured with a workspace tag using the WorkspaceTagDefinition element. This tag is automatically created when a new workspace is created. It is also applied to the new workspace; therefore all content that is created within the workspace will inherit the workspace tag. This is important if you are planning to search per workspace.

Metadata Fields

Workspaces can be configured with metadata fields. All field types that are part of the Form Web Part can be used. Additionally, a TemplateField specifies the base template for new workspaces and a RoleField can be used to make user role assignments for a workspace. Fields can be configured either within the WorkspaceTemplateConfiguration or within the configuration of a Workspace Editor Web Part.

It is recommended to configure fields within the "WorkspaceTemplateConfiguration" if possible. This might reduce the effort for configuring the Web Parts that are used to manage the workspace significantly.

Event Handlers

Within the workspace template, workspace event handlers can be registered using a WorkspaceEventHandlerConfiguration element, which specifies a ClassName to a class implementing IWorkspaceEventHandler.

Following events are available:

  • Adding
  • Added
  • Updating
  • Updated

For more information on how to implement a custom workspace event hander, please refer to the MatchPoint API Reference and to the code samples Colygon.MatchPoint.Samples.zip provided with every MatchPoint Release.

Forms

The Forms-element (type: FormConfiguration) within the workspace template can be used to configure View/Edit/Create forms for a workspace. Each URL parameter allows specifying a page. This page is opened when the corresponding action is called for a workspace, i.e. using the context menu for a workspace element within a Data Grid Web Part.

On the specified pages, the controls for viewing, editing and creating a workspace can be implemented using the Workspace Editor Web Part.

Permissions

The Permissions-element (type: WorkspacePermissionConfiguration) can be used to specify, which users have permissions to view, edit, create or delete workspaces. Please note that the permissions defined here do not affect the effective permissions that are applied to the SharePoint web. They only determine which users are allowed to manage workspaces.

By using the Expression parameter on a WorkspacePermissionConfiguration element, permissions can be assigned dynamically to a specific user group or role. In combination with the "VisibilityCondition" element on metadata fields, simple document based workflows can be modeled for Workspaces by hiding/displaying fields depending on the current state.

Role Management

MatchPoint workspaces provide a role management concept that allows the allocation of user permissions. Permissions are applied to a workspace based on two configuration mechanisms:

  • Roles and their permission levels are defined using a role permission assignment within the workspace provisioning configuration. It is also possible to define or change role permission assignments manually by selecting the link Edit Role Assignments on a workspace.
  • User role assignments (which user inhabits a role on a specific workspace) are specified with the "RoleField" element in the Workspace Editor Web Part.

When both role permission assignments and user role assignments are specified for a workspace, MatchPoint will automatically create SharePoint permission groups and add the users with a corresponding user role assignment to these groups.

Role Management Configuration

The general behavior of the role management is configured within the MatchPoint configuration file. On the configuration root element, the EnableWebRoles parameter specifies whether role permission groups are created on a "per web" or "per site collection" scope. If enabled, unique role permission groups will be created for each workspace that is created.

Within the WorkspaceTemplaceConfiguration, the RoleTagDefinition configuration element specifies, whether a role tag is automatically created for each role and each role assignment that is configured throughout the system.

A user role tag is created using the role name and the user SID for the tag key and the user name (according to the people picker settings configured within the MatchPoint configuration file) as the tag name.

If role tags are enabled, they are automatically applied to the workspace (without being inherited to content within the workspace) and therefore they can be used to search for workspaces.

SharePoint Permission Groups vs. Role Permission Assignments

The permissions determined by the workspace role management are realized using standard SharePoint permission groups. This means, for every role defined on a workspace, a SharePoint permission group with the specified permission level is created. Users that are assigned to a role on a workspace will automatically be added to this group.

Depending on the EnableWebRoles setting, two different scenarios result:

  • If the parameter is set to 'true', a permission group will be created for every role and every instance of a workspace. This permission group will be named after the role and the ID of the workspace, i.e. 'Project Manager_1fb77414-e598-4a03-873b-37abbf177777'.
  • Otherwise, permission groups will be created only for each role. In this case it is not possible to create unique permission settings for different workspaces unless each workspace is created as an own site collection. The permission group will be named after the role, i.e. 'Project Manager'.

In most scenarios, it is recommended to specify the EnableWebRoles parameter as 'false' and create site collections for each new workspace. This ensures a high scalability and keeps the number of permission groups low.

Role Permission Assignments

The permission level for a role is configured within the provisioning template, within a RolePermAssignmentDefinition element. This object is an enumerable of RolePermissionAssignment objects that provide access to the individual permission assignments.

Role permission assignments can be accessed from any "Workspace" object by using the "RolePermissionAssignments" property. All SharePoint container elements (SPWeb, SPList, SPFolder) have an extension method GetRolePermissionAssigments() registered that also returns the role permission assignments of this container.

User Role Assignments

User role assignments can be accessed from any workspace object by using the UserRoleAssignments member.

Synchronization

Once tags are changed on the workspace (i.e. on the workspace list item), they are automatically synchronized to the workspace web.

Workspace Expressions

Workspace

The "Workspace" expression variable provides access to the MatchPoint workspace object of the current web.

The "Workspace" object can be accessed even if the current SPWeb is not a MatchPoint workspace. In that case, the Exists property will return "false". Workspace metadata fields can be accessed by either using the [] operator or by directly accessing the field by its name (i.e. Workspace.FieldName).

Self

During the creation and update of a workspace there is an additional expression variable called "Self". It can be used in the expression strings of the workspace template configuration to access properties of the current workspace while it is created or updated.

For example, if the title of a workspace needs to consist of an input field named WorkspaceTitle plus the ID of the workspace. Then the pattern {Self.WorkspaceTitle}{Self.SiteId} can be used in the SiteTitle property of the workspace template configuration.

WSUtility

The WSUtility expression variable provides access to specific functionality of MatchPoint workspaces.

Workspace Extensions

The following extensions are available for accessing workspace related functionality on SharePoint objects:

Web Parts

Following two web parts exist in relation to workspaces:

Workspace Editor Web Part

The Workspace Editor Web Part is used to create new or edit existing workspaces.

Image Tag Web Part

The Image Tag Web Part enables end users to easily set tags based on tag icons, without needing to open a workspace editor web part

results matching ""

    No results matching ""