PageRenderTime 57ms CodeModel.GetById 29ms RepoModel.GetById 1ms app.codeStats 0ms

/WP7.1/Templates/VB/WPCloud.SQL.Mem/WindowsPhoneCloud.Web/Controllers/UsersController.vb

#
Visual Basic | 83 lines | 54 code | 14 blank | 15 comment | 0 complexity | c82fa77ba4cde63695eda1935ce322ab MD5 | raw file
  1. ' ----------------------------------------------------------------------------------
  2. ' Microsoft Developer & Platform Evangelism
  3. '
  4. ' Copyright (c) Microsoft Corporation. All rights reserved.
  5. '
  6. ' THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
  7. ' EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES
  8. ' OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
  9. ' ----------------------------------------------------------------------------------
  10. ' The example companies, organizations, products, domain names,
  11. ' e-mail addresses, logos, people, places, and events depicted
  12. ' herein are fictitious. No association with any real company,
  13. ' organization, product, domain name, email address, logo, person,
  14. ' places, or events is intended or should be inferred.
  15. ' ----------------------------------------------------------------------------------
  16. Imports Microsoft.Samples.WindowsPhoneCloud.Web.UserAccountWrappers
  17. Imports Microsoft.Samples.WindowsPhoneCloud.Web.Models
  18. Imports Microsoft.Samples.WindowsPhoneCloud.Web.Infrastructure
  19. Namespace Controllers
  20. <CustomAuthorize(Roles:=PrivilegeConstants.AdminPrivilege)> _
  21. Public Class UsersController
  22. Inherits Controller
  23. Private ReadOnly userPrivilegesRepository As IUserPrivilegesRepository
  24. #If ACS Then
  25. Private ReadOnly userRepository As IUserRepository
  26. Public Sub New()
  27. Me.New(Nothing, Nothing)
  28. End Sub
  29. <CLSCompliant(False)> _
  30. Public Sub New(ByVal userPrivilegesRepository As IUserPrivilegesRepository, ByVal userRepository As IUserRepository)
  31. Dim context As SqlDataContext = Nothing
  32. If (userPrivilegesRepository Is Nothing) OrElse (userRepository Is Nothing) Then
  33. context = New SqlDataContext()
  34. End If
  35. Me.userPrivilegesRepository = If(userPrivilegesRepository, context)
  36. Me.userRepository = If(userRepository, context)
  37. End Sub
  38. Public Function Index() As ActionResult
  39. Dim users = Me.userRepository.GetAllUsers().Select(Function(user) New UserPermissionsModel With {.UserName = user.Name, .UserId = user.UserId, .SqlUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.UserId, PrivilegeConstants.SqlUsagePrivilege)})
  40. Return Me.View(users)
  41. End Function
  42. #Else
  43. Private ReadOnly membershipService As IMembershipService
  44. Public Sub New()
  45. Me.New(New SqlDataContext(), New AccountMembershipService())
  46. End Sub
  47. <CLSCompliant(False)> _
  48. Public Sub New(ByVal userPrivilegesRepository As IUserPrivilegesRepository, ByVal membershipService As IMembershipService)
  49. Me.userPrivilegesRepository = userPrivilegesRepository
  50. Me.membershipService = membershipService
  51. End Sub
  52. Public Function Index() As ActionResult
  53. Dim users = Me.membershipService.GetAllUsers().Cast(Of MembershipUser)().Select(Function(user) New UserPermissionsModel With {.UserName = user.UserName, .UserId = user.ProviderUserKey.ToString(), .SqlUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.ProviderUserKey.ToString(), PrivilegeConstants.SqlUsagePrivilege)})
  54. Return Me.View(users)
  55. End Function
  56. #End If
  57. <HttpPost()> _
  58. Public Sub SetUserPermissions(ByVal userId As String, ByVal useTables As Boolean, ByVal useBlobs As Boolean, ByVal useQueues As Boolean, ByVal useSql As Boolean)
  59. Me.SetStorageItemUsagePrivilege(useSql, userId, PrivilegeConstants.SqlUsagePrivilege)
  60. End Sub
  61. Private Sub SetStorageItemUsagePrivilege(ByVal allowAccess As Boolean, ByVal user As String, ByVal privilege As String)
  62. If allowAccess Then
  63. Me.userPrivilegesRepository.AddPrivilegeToUser(user, privilege)
  64. Else
  65. Me.userPrivilegesRepository.RemovePrivilegeFromUser(user, privilege)
  66. End If
  67. End Sub
  68. End Class
  69. End Namespace