Skip to content

Instantly share code, notes, and snippets.

@paulryan
paulryan / UploadUserPhotos.ps1
Created October 20, 2017 10:18
Using Set-UserPhoto to upload user photos to EXO/SPO
# UPDATE THESE VARIABLES
$userDomain = "@tenant.onmicrosoft.com"
$photoFolderURL = "C:\Users\paul.ryan1\Desktop\people\"
$data = @(
@{
User = "alex.law" + $userDomain;
PictureURL = "cast-aaron-j-albano.jpg";
},
@{
@paulryan
paulryan / implicitflow_usage.js
Created November 20, 2016 17:37
Usage of OAuth implict flow lib
var aadAppClientId = "8BE5AA0E-F900-4BDF-A7CF-71B3CC53B78E";
var resource = "https://graph.microsoft.com"
var query = "/v1.0/me/events";
var tokenFactory = new CC.CORE.Adal.AppTokenFactory(aadAppClientId, resource);
tokenFactory.ExecuteQuery(query)
.done(function (response) {
// Success!
})
.fail(function (response) {
// NOTE: Provide a link to renew an expired or yet to be approved session:
@paulryan
paulryan / cache_lib.js
Created November 20, 2016 17:34
SessionStorage cache library
var CC = CC || {};
CC.CORE = CC.CORE || {};
CC.CORE.Cache = (function () {
var defaultCacheExpiry = 15 * 60 * 1000; // default is 15 minutes
var aMinuteInMs = (1000 * 60);
var anHourInMs = aMinuteInMs * 60;
var getCacheObject = function () {
// Using session storage rather than local storage as caching benefit
@paulryan
paulryan / adal_lib.js
Created November 20, 2016 17:31
Custom "adal" implementation for OAuth implict flow
var CC = CC || {};
CC.CORE = CC.CORE || {};
CC.CORE.Log = function (errMsg) {
// console.log is undefined in IE10 and earlier unless in debug mode, so must check for it
if (typeof window.console === "object" && typeof console.log === "function") {
console.log(errMsg);
}
};
@paulryan
paulryan / tslint.json
Created September 8, 2016 15:50
SharePoint Framework: The tslint.json to use with the TSLint VS Code extension. Add the file to the root of your src folder.
{
"rules": {
// Following not supported by tslint - breaks the linter!
// "export-name": false,
// "no-duplicate-case": true,
// "no-function-expression": true,
// "no-unnecessary-semicolons": true,
// "no-unused-imports": true,
// "no-use-before-declare": true,
@paulryan
paulryan / tslint.json
Created September 8, 2016 15:47
SharePoint Framework: The tslint.json file from the config folder extended to support the same set of rules from my preferred tslint file.
{
// Display errors as warnings
"displayAsWarning": true,
// The TSLint task may have been configured with several custom lint rules
// before this config file is read (for example lint rules from the tslint-microsoft-contrib
// project). If true, this flag will deactivate any of these rules.
"removeExistingRules": true,
// When true, the TSLint task is configured with some default TSLint "rules.":
"useDefaultConfigAsBase": false,
// Since removeExistingRules=true and useDefaultConfigAsBase=false, there will be no lint rules
Function ExecuteQueryWithExponentialRetry
{
Param (
[Microsoft.SharePoint.Client.ClientContext]$ctx
)
return ExecuteQueryWithExponentialRetryInternal $ctx 3 1000
}
Function ExecuteQueryWithExponentialRetryInternal
/*
Web Property:
__PageLayouts
Web Property Value:
<pagelayouts>
<layout guid="e87b7c1d-4a23-4ca1-8fb8-36314cabb7c4" url="_catalogs/masterpage/NewsArticlePage.aspx" />
</pagelayouts>
*/
var setAvailablePageLayouts = function (availablePageLayoutFilenames, onSuccess, onFailure) {
@paulryan
paulryan / provision_webpart_view.webpart.xml
Last active August 29, 2015 14:05
Provision a list view as a web part declaritively
<View WebPartZoneID="wpzHeader" WebPartOrder="0" List="Lists/PromotedLinks" DefaultView="FALSE" BaseViewID="1" Hidden="TRUE">
<![CDATA[
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart,Microsoft.SharePoint,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="ListName" type="string">{$ListId:Documents;}</property>
<property name="ListId" type="System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">$ListId:Documents;</property>