Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNUtilisation - f...Utilisation - f...Mise à jour des propriétésMise à jour des propriétés
Précédente
 
Suivante
Nouveau message
08/04/2008 15:24
 

Bonjour,

Je cherche à modifier les propriétés d'un profile car j'obtiens certaines informations à partir d'une autre source que l'interface.

Entre autres, un User (qui correspond à une fonction dans l'entreprise) peut changer et il me faut changer le nom, le prénom, le "DisplayName", le courriel, etc.

J'ai donc essayer très (trop?) simplement ce code (extrait) :

            Dim objUser As UserInfo = New DotNetNuke.Entities.Users.UserInfo
            objUser.PortalID = PortalId
            objUser.Username = UserInfo.Username
            objUser.DisplayName = sPrenom & " " & sNom
            UserController.UpdateUser(PortalId, objUser)

Ceci ne fonctionne tout simplement pas...

Auriez-vous une piste de solution, s'il vous plaît ?

Merci d'avance !

Edx

 
Nouveau message
08/04/2008 17:15
 

Bonjour,

DotNetNuke contient un provider de profil extensible, accessible depuis Site > Utilisateurs > Propriétés de profil. Avec ce contrôle, tu peux étendre les informations demandées lors de l'inscription, et ajouter, par exemple, des champs de liste. Cela te permet d'avoir un contrôle complet sur les infos qui pourraient être utiles pour qualifier l'utilisateurs. Cependant, cela reste stocké sur la même base que DotNetNuke, et si c'est la raison pour laquelles tu attaques la création d'utilisateur programmatiquement, alors procède comme suit :

Avant toute chose, tu peux regarder comment c'est fait dans User.ascx.vb et t'en inspirer.

D'après ce que j'ai compris, tu cherches à mettre à jour un utilisateur qui existe. Pour cela, tu dois récupérer un UserID quelque part. Soit depuis une valeur Bindée - sur une liste par exemple (avec Me.list.SelectedValue.Value), soit depuis le contexte avec Me.UserID (Dans ce dernier cas, tu édites le profil de l'utilisateur courant uniquement.). Avec cette donnée (Integer), tu peux récupérer le UserInfo tel qu'il est dans la base, par exemple comme cela :

Note : Je suppose que le nom d'utilisateur est une variable connue d'ailleurs ; dans ton code plus haut, une exception Null aurait dû surgir puisque UserInfo.UserName ne mène à rien (on vient de faire un New et le champ est vide car aucune valeur n'est par défaut.)

       Private Sub GoGetIt(ByVal intUserId As Integer, ByVal sUserName As String, ByVal sPrenom As String, ByVal sNom As String)
            If Not intUserId = Null.NullInteger Then ' Different de  -1
                Dim objUser As UserInfo = UserController.GetUser(Me.PortalId, intUserId, False)
                If Not objUser Is Nothing Then
                    objUser.PortalID = Me.PortalId
                    objUser.Username = sUsername
                    objUser.DisplayName = sPrenom & " " & sNom
                    UserController.UpdateUser(Me.PortalId, objUser)
                Else
                    ' si on a un UserId valide cela ne devrait pas arriver
                    ' mais si l'UserId est confondu avec un autre système opérant, alors on crée un utilisateur
                    ' sinon, on fera un
                    Dim boolSuccess As Boolean = False
                    objUser = New UserInfo
                    objUser.DisplayName = sPrenom & " " & sNom
                    ' ...
                    boolSuccess = UserController.CreateUser(objUser)
                    If Not boolSuccess Then
                        DotNetNuke.UI.Skins.Skin.AddModuleMessage(Me, "L'utilisateur n'a pas ete cree", ModuleMessage.ModuleMessageType.RedError)
                    End If
                End If
            End If

        End Sub

Pour mettre à jour une propriété de profil personnalisé programmatiquement c'est un peu plus compliqué. Si c'est ce que tu veux faire, fait le savoir.

Seb

 
Nouveau message
10/04/2008 04:44
 

Merci beaucoup...

C'est exactement ce que je cherchais !

Bonne journée !

 
Nouveau message
28/04/2008 04:19
 

seb a dit :
(...)

Pour mettre à jour une propriété de profil personnalisé programmatiquement c'est un peu plus compliqué. Si c'est ce que tu veux faire, fait le savoir.

Seb

Bonjour Seb (entre autres),

Finalement, j'en serais à mettre à jour une propriété de profil personnalisé. Auriez-vous un bout de code pour me mettre sur la piste ?

Merci d'avance !

Edx

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNUtilisation - f...Utilisation - f...Mise à jour des propriétésMise à jour des propriétés