23 avril 2015

SHAREPOINT 2013 : Vérifier page en mode édition


Aujourd'hui un petit post sur la détection en JavaScript du mode édition sur une page SharePoint.
Sur une page de publication, il suffit d'interroger la valeur d'une variable existante:



Il est de même possible d'utiliser les modifications suivantes dans la page maitre sur un site de publication:



Il suffira à présent d'utiliser la variable "IsEditMode" pour tester que la page est bien en mode édition.
Mais ce serait trop simple si tous les cas étaient traités avec cette simple manipulation. Sur les pages Wiki, il faudra ajouter le script suivant pour détecter le mode édition:



Pour les pages de WebPart, il faudra utiliser le script suivant:

 
 
Il sera tout de même nécessaire de tester sur les 2 derniers scripts que les valeurs ne sont pas nulles avant d'accéder à la propriété value: 
(typeof document.forms[MSOWebPartPageFormName]._wikiPageMode != 'undefined'
(typeof document.forms[MSOWebPartPageFormName].MSOLayout_InDesignMode!= 'undefined'

17 avril 2015

SHAREPOINT 2013 : Mapper propriété UPS sur attribut AD

Le service de profil utilisateur de SharePoint 2013 met à disposition des propriétés utilisateurs pouvant être utilisées dans vos applications. Dans ce contexte, il peut être intéressant de mapper ces propriétés sur des attributs de l'Active Directory.
 
Pour se faire, il peut être intéressant d'utiliser un script PowerShell (l'avantage est qu'il permet un déploiement uniforme entre les divers environnements).

Le script suivant permet de parcourir chacune de vos connexions AD définies dans l'UPS et d'ajouter le mappage de la propriété AD "mail" sur la propriété utilisateur "WorkEmail".
# Récupération du UPS associé au site sharepointsite
$site = New-Object Microsoft.SharePoint.SPSite "http://Sharepointsite"
$context = [Microsoft.SharePoint.SPServiceContext]::GetContext($site)
$configManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileConfigManager $context
# Parcours de toutes les connexions AD définies dans l'UPS
foreach ($ADConnection in $configManager.ConnectionManager)
{
     Write-Host $ADConnection.DisplayName -foregroundcolor blue
     # Ajout du mappage de la propriété "WorkEmail" sur l'attribut AD nommé "mail"
     Write-Host $ADConnection.DisplayName "- Workemail" -foregroundcolor green
     $ADConnection.PropertyMapping.AddNewMapping([Microsoft.Office.Server.UserProfiles.ProfileType]::User,"WorkEmail","mail")
     ...
}
 

12 avril 2015

SHAREPOINT 2013 : Liste des collections de sites

Aujourd'hui, une petite commande PowerShell utile pour tout administrateur SharePoint.
En effet, certaines interfaces de l'administration centrale de SharePoint ne sont pas conçues pour synthétiser l'information, il est donc nécessaire de réaliser des extractions ou des audits via les applets de commandes PowerShell pour SharePoint.

La commande ci-dessous permet de d'obtenir la liste des collections de sites présentes sur une ferme SharePoint ou sur une application web spécifique.
 
Get-SPWebApplication -Limit All | Get-SPSite | Format-Table -Property URL,ContentDatabase, Owner, SecondaryOwner
 
Pour expliquer le fonctionnement:
  • Get-SPWebApplication récupère une collection d'applications web. Le paramètre -Limit All permet de ramener toutes les applications web de la ferme SP. Il serait possible de spécifier une application web particulière en précisant l'url,
  • Get-SPSite : Récupère la liste des collections de sites associées à la (ou les) application(s) web SharePoint.
  • Format-Table : Affiche les données en renvoyant les propriétés sélectionnées.


Tout cela en une seule ligne, merci Powershell! Réaliser la même chose en code managé aurait pris au moins une vingtaine de lignes.
L'utilisation de PowerShell pour administrer et auditer SharePoint doit être un reflexe.