OVH Cloud OVH Cloud

Problème dedroits avec une query CAML

5 réponses
Avatar
webrod
Bonjour,

j'utilise une web part de roll out pour afficher mes taches =E0 travers
tous les sites WSS: (WP ici=3D>
http://www.ideseg.com/CategoryView,category,csegRollUp.aspx)
Ma question ne porte pas sur les sp=E9cificit=E9s de cette WP ni sur le
langage CAML.

J'ai un site WSS avec 3 sous sites.
Le site parent n'a pas besoin d'authentification, je l'ai configur=E9 en
activant les acc=E9s anonymes.
Seul les sites enfants demandent une authentification.

Lorsque j'affiche la WP de roll out au niveau du site WSS parent, je
vois bien toutes les T=E2ches de tous les sites (pour lesquels j'ai des
droits bien sur).
Pour cela il faut evidemment que je clique malgr=E9 tout sur le bouton
"sign in" du site parent pour qu'il me reconnaisse et sache =E0 quels
sites enfants j'ai acc=E9s.

Quand j'ajoute une query CAML pour ne voir que celles qui me sont
assign=E9es, j'ai un message d'erreur m'indiquant un refus d'acc=E9s
(j'ai mis le message complet en bas de ce message).

Voici la query CAML:
<Where>
<Eq>
<FieldRef Name=3D"AssignedTo"></FieldRef>
<Value Type=3D"Integer">
<UserID />
</Value>
</Eq>
</Where>

En fait pour que cela fonctionne, il faut que je m'ajoute en tant
qu'utilisateurs au niveau du site Parent, avec par exemple des droits
de lecteur (alors qu'il n'y a aucun utilisateur associ=E9 au site parent
puisqu'il est en acc=E9s libre).
Je ne veux pas faire cela, car cela m'obligerait =E0 faire cette
manipulation pour tous les utilisateurs existants et futurs et cela
alourdirait la t=E2che d'administration.

Je ne comprends pas pour quoi le fait de faire une requ=EAte CAML
apporte une diff=E9rence.
Quoiqu'il arrive WSS fait forc=E8ment une query pour r=E9cup=E9rer
l'ensemble des t=E2ches de tous les sites.
Et il se d=E9brouille bien pour ne me donner que les t=E2ches des sites
auxquels j'ai acc=E9s!!!
Alors pourquoi le fait de filtrer les enregistrements poseraient
probl=E8me??

Merci de votre aide

Rod

PS: voici le message d'erreur:
Error: In Query



System.UnauthorizedAccessException: Access is denied. at
Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, UInt32 A_1, String A_2,
UInt32& A_3, UInt32& A_4, Object& A_5) at
Microsoft.SharePoint.SPUser.a() at
Microsoft.SharePoint.SPUser..ctor(SPSite A_0, SPWeb A_1, SPGroup A_2,
String A_3, Object[,] A_4, UInt32 A_5, Int32 A_6, String A_7, String
A_8, Object[,] A_9, UInt32 A_10, UInt32 A_11, t A_12) at
Microsoft.SharePoint.SPWeb.get_CurrentUser() at
csegRollUpLists.csegRollUp.a(String A_0, SPWeb A_1) at
csegRollUpLists.csegRollUp.a(DataTable A_0, SPWeb A_1, String A_2,
String[] A_3)Error: In Query


System.UnauthorizedAccessException: Access is denied. at
Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, UInt32 A_1, String A_2,
UInt32& A_3, UInt32& A_4, Object& A_5) at
Microsoft.SharePoint.SPUser.a() at
Microsoft.SharePoint.SPUser..ctor(SPSite A_0, SPWeb A_1, SPGroup A_2,
String A_3, Object[,] A_4, UInt32 A_5, Int32 A_6, String A_7, String
A_8, Object[,] A_9, UInt32 A_10, UInt32 A_11, t A_12) at
Microsoft.SharePoint.SPWeb.get_CurrentUser() at
csegRollUpLists.csegRollUp.a(String A_0, SPWeb A_1) at
csegRollUpLists.csegRollUp.a(DataTable A_0, SPWeb A_1, String A_2,
String[] A_3)

5 réponses

Avatar
bboule
Bonjour

Pour ma part, je pense que cela vient d'un manque de droit (sans
blague!) mais pas au niveau des accès aux listes, mais lorsque le
programme tente de récupérer l'ID de l'utilisateur en cours !

at Microsoft.SharePoint.SPUser.

Par contre si vous lui donnez directement dans votre requête, le
numéro ID de l'utilisateur, que ce passe-t-il ??? (j'ai mis 4 au
hasard !)

Voici la query CAML modifiée
<Where>
<Eq>
<FieldRef Name="AssignedTo"></FieldRef>
<Value Type="Integer">
4
</Value>
</Eq>
</Where>

Salutations

Cédric Petter

webrod schrieb:

Bonjour,

j'utilise une web part de roll out pour afficher mes taches à travers
tous les sites WSS: (WP ici=>
http://www.ideseg.com/CategoryView,category,csegRollUp.aspx)
Ma question ne porte pas sur les spécificités de cette WP ni sur le
langage CAML.

J'ai un site WSS avec 3 sous sites.
Le site parent n'a pas besoin d'authentification, je l'ai configuré en
activant les accés anonymes.
Seul les sites enfants demandent une authentification.

Lorsque j'affiche la WP de roll out au niveau du site WSS parent, je
vois bien toutes les Tâches de tous les sites (pour lesquels j'ai des
droits bien sur).
Pour cela il faut evidemment que je clique malgré tout sur le bouton
"sign in" du site parent pour qu'il me reconnaisse et sache à quels
sites enfants j'ai accés.

Quand j'ajoute une query CAML pour ne voir que celles qui me sont
assignées, j'ai un message d'erreur m'indiquant un refus d'accés
(j'ai mis le message complet en bas de ce message).

Voici la query CAML:
<Where>
<Eq>
<FieldRef Name="AssignedTo"></FieldRef>
<Value Type="Integer">
<UserID />
</Value>
</Eq>
</Where>

En fait pour que cela fonctionne, il faut que je m'ajoute en tant
qu'utilisateurs au niveau du site Parent, avec par exemple des droits
de lecteur (alors qu'il n'y a aucun utilisateur associé au site parent
puisqu'il est en accés libre).
Je ne veux pas faire cela, car cela m'obligerait à faire cette
manipulation pour tous les utilisateurs existants et futurs et cela
alourdirait la tâche d'administration.

Je ne comprends pas pour quoi le fait de faire une requête CAML
apporte une différence.
Quoiqu'il arrive WSS fait forcèment une query pour récupérer
l'ensemble des tâches de tous les sites.
Et il se débrouille bien pour ne me donner que les tâches des sites
auxquels j'ai accés!!!
Alors pourquoi le fait de filtrer les enregistrements poseraient
problème??

Merci de votre aide

Rod

PS: voici le message d'erreur:
Error: In Query



System.UnauthorizedAccessException: Access is denied. at
Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, UInt32 A_1, String A_2,
UInt32& A_3, UInt32& A_4, Object& A_5) at
Microsoft.SharePoint.SPUser.a() at
Microsoft.SharePoint.SPUser..ctor(SPSite A_0, SPWeb A_1, SPGroup A_2,
String A_3, Object[,] A_4, UInt32 A_5, Int32 A_6, String A_7, String
A_8, Object[,] A_9, UInt32 A_10, UInt32 A_11, t A_12) at
Microsoft.SharePoint.SPWeb.get_CurrentUser() at
csegRollUpLists.csegRollUp.a(String A_0, SPWeb A_1) at
csegRollUpLists.csegRollUp.a(DataTable A_0, SPWeb A_1, String A_2,
String[] A_3)Error: In Query


System.UnauthorizedAccessException: Access is denied. at
Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0) at
Microsoft.SharePoint.Library.a.a(String A_0, UInt32 A_1, String A_2,
UInt32& A_3, UInt32& A_4, Object& A_5) at
Microsoft.SharePoint.SPUser.a() at
Microsoft.SharePoint.SPUser..ctor(SPSite A_0, SPWeb A_1, SPGroup A_2,
String A_3, Object[,] A_4, UInt32 A_5, Int32 A_6, String A_7, String
A_8, Object[,] A_9, UInt32 A_10, UInt32 A_11, t A_12) at
Microsoft.SharePoint.SPWeb.get_CurrentUser() at
csegRollUpLists.csegRollUp.a(String A_0, SPWeb A_1) at
csegRollUpLists.csegRollUp.a(DataTable A_0, SPWeb A_1, String A_2,
String[] A_3)


Avatar
webrod
en fait, là j'ai droit à un autre message d'erreur:
Error: In Query
4

Microsoft.SharePoint.SPException: Erreur serveur SQL Le serveur SQL
peut ne pas démarrer.

Apparremment il n'aime pas qu'on lui mette un chiffre à cet endroit...
Merci de ton aide

Rod

bboule a écrit :

Bonjour

Pour ma part, je pense que cela vient d'un manque de droit (sans
blague!) mais pas au niveau des accès aux listes, mais lorsque le
programme tente de récupérer l'ID de l'utilisateur en cours !

at Microsoft.SharePoint.SPUser.

Par contre si vous lui donnez directement dans votre requête, le
numéro ID de l'utilisateur, que ce passe-t-il ??? (j'ai mis 4 au
hasard !)

Voici la query CAML modifiée
<Where>
<Eq>
<FieldRef Name="AssignedTo"></FieldRef>
<Value Type="Integer">
4
</Value>
</Eq>
</Where>

Salutations

Cédric Petter



Avatar
bboule
Comme je te l'ai dit, j'avais mis 4 au hasard !!!

Il faut essayer avec un vrai ID d'utilisateur !!
Pour savoir l'ID exact tu vas sur
http://nomduserver/_layouts/1036/userinfo.aspx et tu regarde l'url d'un
user !
Le dernier param (normalement) est l'ID.

et pour l'erreur SQL, controle bien que le service est démarrer !
Menu démarrer > Exécuter > services.msc

Ensuite tu recherche un service dans le genre SQL Server (MSSQLSERVER)
et tu regarde qu'il soit bien démarrer et en automatique !

j'espère que cela va t'aider un peu plus !

Cédric petter

webrod schrieb:

en fait, là j'ai droit à un autre message d'erreur:
Error: In Query
4

Microsoft.SharePoint.SPException: Erreur serveur SQL Le serveur SQL
peut ne pas démarrer.

Apparremment il n'aime pas qu'on lui mette un chiffre à cet endroit...
Merci de ton aide

Rod

bboule a écrit :

> Bonjour
>
> Pour ma part, je pense que cela vient d'un manque de droit (sans
> blague!) mais pas au niveau des accès aux listes, mais lorsque le
> programme tente de récupérer l'ID de l'utilisateur en cours !
>
> at Microsoft.SharePoint.SPUser.
>
> Par contre si vous lui donnez directement dans votre requête, le
> numéro ID de l'utilisateur, que ce passe-t-il ??? (j'ai mis 4 au
> hasard !)
>
> Voici la query CAML modifiée
> <Where>
> <Eq>
> <FieldRef Name="AssignedTo"></FieldRef>
> <Value Type="Integer">
> 4
> </Value>
> </Eq>
> </Where>
>
> Salutations
>
> Cédric Petter
>


Avatar
webrod
oui bien sur j'ai mis un ID qui existe.
De toute facon même avec un ID non existant au pire il devrait me
remvoyer 0 enregistrement (ne trouvant pas d'enregistrement avec
userID=XX) mais de message d'erreur.
J'ai essayé avec 1,3 et 4et rien n'y fait.

Le service est bien démarré et en automatique.

Rod

bboule a écrit :

Comme je te l'ai dit, j'avais mis 4 au hasard !!!

Il faut essayer avec un vrai ID d'utilisateur !!
Pour savoir l'ID exact tu vas sur
http://nomduserver/_layouts/1036/userinfo.aspx et tu regarde l'url d'un
user !
Le dernier param (normalement) est l'ID.

et pour l'erreur SQL, controle bien que le service est démarrer !
Menu démarrer > Exécuter > services.msc

Ensuite tu recherche un service dans le genre SQL Server (MSSQLSERVER)
et tu regarde qu'il soit bien démarrer et en automatique !

j'espère que cela va t'aider un peu plus !

Cédric petter

webrod schrieb:

> en fait, là j'ai droit à un autre message d'erreur:
> Error: In Query
> 4
>
> Microsoft.SharePoint.SPException: Erreur serveur SQL Le serveur SQL
> peut ne pas démarrer.
>
> Apparremment il n'aime pas qu'on lui mette un chiffre à cet endroit...
> Merci de ton aide
>
> Rod
>
> bboule a écrit :
>
> > Bonjour
> >
> > Pour ma part, je pense que cela vient d'un manque de droit (sans
> > blague!) mais pas au niveau des accès aux listes, mais lorsque le
> > programme tente de récupérer l'ID de l'utilisateur en cours !
> >
> > at Microsoft.SharePoint.SPUser.
> >
> > Par contre si vous lui donnez directement dans votre requête, le
> > numéro ID de l'utilisateur, que ce passe-t-il ??? (j'ai mis 4 au
> > hasard !)
> >
> > Voici la query CAML modifiée
> > <Where>
> > <Eq>
> > <FieldRef Name="AssignedTo"></FieldRef>
> > <Value Type="Integer">
> > 4
> > </Value>
> > </Eq>
> > </Where>
> >
> > Salutations
> >
> > Cédric Petter
> >


Avatar
bboule
C'est très bizarre, car j'ai plusieurs fois utilisé les query CAML et
j'ai mis du texte ou des nombres directement entre les balises value,
et cela fonctionne bien !!!

Vraiment désolé, mais je ne vois pas trop de solutions !

Désolé

Cédric

webrod schrieb:

oui bien sur j'ai mis un ID qui existe.
De toute facon même avec un ID non existant au pire il devrait me
remvoyer 0 enregistrement (ne trouvant pas d'enregistrement avec
userID=XX) mais de message d'erreur.
J'ai essayé avec 1,3 et 4et rien n'y fait.

Le service est bien démarré et en automatique.

Rod

bboule a écrit :

> Comme je te l'ai dit, j'avais mis 4 au hasard !!!
>
> Il faut essayer avec un vrai ID d'utilisateur !!
> Pour savoir l'ID exact tu vas sur
> http://nomduserver/_layouts/1036/userinfo.aspx et tu regarde l'url d'un
> user !
> Le dernier param (normalement) est l'ID.
>
> et pour l'erreur SQL, controle bien que le service est démarrer !
> Menu démarrer > Exécuter > services.msc
>
> Ensuite tu recherche un service dans le genre SQL Server (MSSQLSERVER)
> et tu regarde qu'il soit bien démarrer et en automatique !
>
> j'espère que cela va t'aider un peu plus !
>
> Cédric petter
>
> webrod schrieb:
>
> > en fait, là j'ai droit à un autre message d'erreur:
> > Error: In Query
> > 4
> >
> > Microsoft.SharePoint.SPException: Erreur serveur SQL Le serveur SQL
> > peut ne pas démarrer.
> >
> > Apparremment il n'aime pas qu'on lui mette un chiffre à cet endroit ...
> > Merci de ton aide
> >
> > Rod
> >
> > bboule a écrit :
> >
> > > Bonjour
> > >
> > > Pour ma part, je pense que cela vient d'un manque de droit (sans
> > > blague!) mais pas au niveau des accès aux listes, mais lorsque le
> > > programme tente de récupérer l'ID de l'utilisateur en cours !
> > >
> > > at Microsoft.SharePoint.SPUser.
> > >
> > > Par contre si vous lui donnez directement dans votre requête, le
> > > numéro ID de l'utilisateur, que ce passe-t-il ??? (j'ai mis 4 au
> > > hasard !)
> > >
> > > Voici la query CAML modifiée
> > > <Where>
> > > <Eq>
> > > <FieldRef Name="AssignedTo"></FieldRef>
> > > <Value Type="Integer">
> > > 4
> > > </Value>
> > > </Eq>
> > > </Where>
> > >
> > > Salutations
> > >
> > > Cédric Petter
> > >