Option Explicit On
Option Strict On
Imports System.Collections
Imports System.Collections.Generic
Partial Class Admin_EditUser
Inherits BasePage
Dim userName As String = ""
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
userName = Me.Request.QueryString("UserName")
lblRolesFeedback.Visible = False
If Not Me.IsPostBack Then
' show the user's details
If userName.Length > 0 Then
Dim user As MembershipUser = Membership.GetUser(userName)
Me.lblUserName.Text = user.UserName
Me.lnkEmail.Text = user.Email
Me.lnkEmail.NavigateUrl = "mailto:" & user.Email
Me.lblRegistered.Text = user.CreationDate.ToString("f")
Me.lblLastLogin.Text = user.LastLoginDate.ToString("f")
Me.lblLastActivity.Text = user.LastActivityDate.ToString("f")
Me.chkOnlineNow.Checked = user.IsOnline
Me.chkApproved.Checked = user.IsApproved
Me.chkLockedOut.Checked = user.IsLockedOut
Me.chkLockedOut.Enabled = user.IsLockedOut
Dim userProfile As ProfileCommon = Me.Profile
userProfile = Me.Profile.GetProfile(userName)
Me.lblFirstName.Text = userProfile.FirstName
Me.lblLastName.Text = userProfile.LastName
Me.lblAddress.Text = userProfile.Address
Me.lblPhone.Text = userProfile.Phone
BindRoles()
End If
End If
Catch exc As Exception
' Do nothing
Finally
End Try
End Sub
Private Sub BindRoles()
Me.chklRoles.DataSource = Roles.GetAllRoles
Me.chklRoles.DataBind()
For Each role As String In Roles.GetRolesForUser(userName)
Me.chklRoles.Items.FindByText(role).Selected = True
Next
End Sub
Protected Sub chkApproved_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkApproved.CheckedChanged
Try
Dim user As MembershipUser = Membership.GetUser(userName)
Dim userEmail As String = user.Email.ToString()
user.IsApproved = chkApproved.Checked
Membership.UpdateUser(user)
If chkApproved.Checked Then
Dim emailMsg As New System.Net.Mail.MailMessage
Dim smtpClient As New System.Net.Mail.SmtpClient()
emailMsg.From = New System.Net.Mail.MailAddress(ConfigurationManager.AppSettings.Item("AdminUserEmail").ToString())
emailMsg.Subject = "Your Account has been Approved."
emailMsg.Body = "Hello " & userName & vbCrLf & Space(15) & "Your Account has been Approved." & vbCrLf & vbCrLf & "See you online!" & vbCrLf & "- Vishwa Mohan"
emailMsg.To.Add(userEmail)
smtpClient.Send(emailMsg)
End If
Me.lblRolesFeedback.Text = "Approval status updated successfully."
Catch exc As Exception
Me.lblRolesFeedback.Text = exc.Message
Finally
Me.lblRolesFeedback.Visible = True
End Try
End Sub
Protected Sub chkLockedOut_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkLockedOut.CheckedChanged
If Not chkLockedOut.Checked Then
Dim user As MembershipUser = Membership.GetUser(userName)
user.UnlockUser()
Me.chkLockedOut.Enabled = False
End If
End Sub
Protected Sub btnUpdateRoles_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpdateRoles.Click
' first remove the user from all roles...
Dim currRoles() As String = Roles.GetRolesForUser(userName)
If currRoles.Length > 0 Then
Roles.RemoveUserFromRoles(userName, currRoles)
Me.lblRolesFeedback.Text = "Role removed from the User."
End If
' and then add the user to the selected roles
Dim newRoles As New List(Of String)
For Each item As ListItem In chklRoles.Items
If item.Selected Then
newRoles.Add(item.Text)
Me.lblRolesFeedback.Text = "New Role Added to the User."
End If
Next
Dim userNames() As String = {userName}
Roles.AddUsersToRoles(userNames, newRoles.ToArray)
Me.lblRolesFeedback.Visible = True
End Sub
Protected Sub btnCreateRole_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCreateRole.Click
If Not Roles.RoleExists(txtNewRole.Text.Trim) Then
Roles.CreateRole(txtNewRole.Text.Trim)
BindRoles()
End If
End Sub
End Class