function
getPermissionMask(basePermissions) {
var
permissions=[];
permissions[
"FullMask"
] = -1;
permissions[
"ViewListItems"
] = parseInt(
"0x0000000000000001"
);
permissions[
"AddListItems"
] = parseInt(
"0x0000000000000002"
);
permissions[
"EditListItems"
] = parseInt(
"0x0000000000000004"
);
permissions[
"DeleteListItems"
] = parseInt(
"0x0000000000000008"
);
permissions[
"ApproveItems"
] = parseInt(
"0x0000000000000010"
);
permissions[
"OpenItems"
] = parseInt(
"0x0000000000000020"
);
permissions[
"ViewVersions"
] = parseInt(
"0x0000000000000040"
);
permissions[
"DeleteVersions"
] = parseInt(
"0x0000000000000080"
);
permissions[
"CancelCheckout"
] = parseInt(
"0x0000000000000100"
);
permissions[
"ManagePersonalViews"
] = parseInt(
"0x0000000000000200"
);
permissions[
"ManageLists"
] = parseInt(
"0x0000000000000800"
);
permissions[
"ViewFormPages"
] = parseInt(
"0x0000000000001000"
);
permissions[
"Open"
] = parseInt(
"0x0000000000010000"
);
permissions[
"ViewPages"
] = parseInt(
"0x0000000000020000"
);
permissions[
"AddAndCustomizePages"
] = parseInt(
"0x0000000000040000"
);
permissions[
"ApplyThemeAndBorder"
] = parseInt(
"0x0000000000080000"
);
permissions[
"ApplyStyleSheets"
] = parseInt(
"0x0000000000100000"
);
permissions[
"ViewUsageData"
] = parseInt(
"0x0000000000200000"
);
permissions[
"CreateSSCSite"
] = parseInt(
"0x0000000000400000"
);
permissions[
"ManageSubwebs"
] = parseInt(
"0x0000000000800000"
);
permissions[
"CreateGroups"
] = parseInt(
"0x0000000001000000"
);
permissions[
"ManagePermissions"
] = parseInt(
"0x0000000002000000"
);
permissions[
"BrowseDirectories"
] = parseInt(
"0x0000000004000000"
);
permissions[
"BrowseUserInfo"
] = parseInt(
"0x0000000008000000"
);
permissions[
"AddDelPrivateWebParts"
] = parseInt(
"0x0000000010000000"
);
permissions[
"UpdatePersonalWebParts"
] = parseInt(
"0x0000000020000000"
);
permissions[
"ManageWeb"
] = parseInt(
"0x0000000040000000"
);
permissions[
"UseClientIntegration"
] = parseInt(
"0x0000001000000000"
);
permissions[
"UseRemoteAPIs"
] = parseInt(
"0x0000002000000000"
);
permissions[
"ManageAlerts"
] = parseInt(
"0x0000004000000000"
);
permissions[
"CreateAlerts"
] = parseInt(
"0x0000008000000000"
);
permissions[
"EditMyUserInfo"
] = parseInt(
"0x0000010000000000"
);
var
mask = 1;
for
(
var
i=basePermissions.length; i--;) mask |= permissions[basePermissions[i]];
return
mask;
}
$().SPServices({
operation:
"GetRoleCollectionFromWeb"
,
completefunc:
function
(xData, Status) {
var
roles=[];
var
dom=xData.responseXML.getElementsByTagName(
"Role"
);
for
(
var
i=dom.length; i--;) roles[dom[i].getAttribute(
"Name"
)]=dom[i].getAttribute(
"BasePermissions"
).split(
", "
);
$().SPServices({
operation:
"AddPermission"
,
objectName:
"Nom de la Liste"
,
objectType:
"List"
,
permissionIdentifier:
"domain\\login"
,
permissionType:
"user"
,
permissionMask:getPermissionMask(roles[
"Contribute"
]),
completefunc:
function
(xData, Status) { alert(
"Permissions ajoutés"
); }
});
}
});