j'ai un problème avec notre outil Voyage basé sur SharePoint 2013.Impossible de créer listitem via le repos api en sharepoint2013 avec contribuer les droits
Cet outil se compose de différents types de contenu - tous dans leurs listes spécifiques (demandes de voyage, des voyages en train , vols, etc.). Deux groupes principaux utilisent cet outil: les employés (contribuer) et le personnel administratif (contrôle total). Sur la homepage.aspx, nous avons un ScriptEditorWebpart avec un bouton HomePageNewItem personnalisé et un ListView des demandes de voyage. Lorsque l'utilisateur clique sur le bouton personnalisé, un nouvel élément ListItem est créé via l'API REST et le fichier EditForm.aspx de l'élément ListItem actuellement créé s'affiche.
Quel est le problème?
Cela fonctionne très bien pour le personnel administratif (contrôle total). Lorsque les employés essaient de créer un ListItem, le message d'erreur suivant s'affiche: HRESULT: 0x80131904 (renvoyant à partir de l'API REST). La même chose se produit, lorsque les employés visitent certaines des listes. Le ListView n'est pas affiché, mais il y a le même message d'erreur.
Quelques informations supplémentaires
- La base de données SQL a assez de stockage sur toutes les partitions
- Lorsqu'un employé utilise la norme « Nouvel élément » bouton, tout fonctionne très bien (sauf ListView)
- Lorsqu'un employé est déplacé vers le groupe de personnel administratif, tout fonctionne très bien
- Toutes les listes ont les autorisations correctes définies
- Cela a fonctionné une semaine avant et il n'y avait pas de changements dans le code , seulement quelques personnalisations de sites, par ex. homepage.aspx)
Indications complémentaires
pourrait-il a quelque chose à voir avec la définition du site?
La fonction qui crée l'élément de liste
function createListItem(listName, newItem, success) {
var itemType = getItemTypeForListName(listName);
newItem.__metadata = { "type": itemType }
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items",
type: "POST",
contentType: "application/json;odata=verbose",
data: JSON.stringify(newItem),
headers: {
"Accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val()
},
success: function (data) {
success(data);
},
error: function (data) {
var errorMessage = JSON.parse(data.responseText).error.message.value;
var statusId;
statusId = SP.UI.Status.addStatus("Hoppla:", errorMessage);
SP.UI.Status.setStatusPriColor(statusId, "Blue");
setTimeout(function() { SP.UI.Status.removeStatus(statusId); },10000);
}
});
}
function getItemTypeForListName(name) {
return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
}
Merci à l'avance Benjamin