Skip to content

Instantly share code, notes, and snippets.

Paul Ryan paulryan

Block or report user

Report or block paulryan

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@paulryan
paulryan / UploadUserPhotos.ps1
Created Oct 20, 2017
Using Set-UserPhoto to upload user photos to EXO/SPO
View UploadUserPhotos.ps1
# 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 Nov 20, 2016
Usage of OAuth implict flow lib
View implicitflow_usage.js
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 / adal_lib.js
Created Nov 20, 2016
Custom "adal" implementation for OAuth implict flow
View adal_lib.js
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 / cache_lib.js
Created Nov 20, 2016
SessionStorage cache library
View cache_lib.js
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
View XsltListViewWebPart.webpart.xml
<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>
@paulryan
paulryan / tslint.json
Created Sep 8, 2016
SharePoint Framework: The tslint.json to use with the TSLint VS Code extension. Add the file to the root of your src folder.
View tslint.json
{
"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 Sep 8, 2016
SharePoint Framework: The tslint.json file from the config folder extended to support the same set of rules from my preferred tslint file.
View tslint.json
{
// 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
View ExecuteQueryWithExponentialRetry.ps1
Function ExecuteQueryWithExponentialRetry
{
Param (
[Microsoft.SharePoint.Client.ClientContext]$ctx
)
return ExecuteQueryWithExponentialRetryInternal $ctx 3 1000
}
Function ExecuteQueryWithExponentialRetryInternal
View jsomPublishingAttts.js
/*
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 Aug 29, 2015
Provision a list view as a web part declaritively
View provision_webpart_view.webpart.xml
<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>
You can’t perform that action at this time.