PageRenderTime 42ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

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

#
Visual Basic | 82 lines | 53 code | 14 blank | 15 comment | 0 complexity | 93fa871368e4b370938ab0be74ba0725 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(New UserTablesServiceContext(), New UserTablesServiceContext())
  28. End Sub
  29. <CLSCompliant(False)> _
  30. Public Sub New(ByVal userPrivilegesRepository As IUserPrivilegesRepository, ByVal userRepository As IUserRepository)
  31. Me.userPrivilegesRepository = userPrivilegesRepository
  32. Me.userRepository = userRepository
  33. End Sub
  34. Public Function Index() As ActionResult
  35. Dim users = Me.userRepository.GetAllUsers().Select(Function(user) New UserPermissionsModel With {.UserName = user.Name, .UserId = user.UserId, .TablesUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.UserId, PrivilegeConstants.TablesUsagePrivilege), .BlobsUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.UserId, PrivilegeConstants.BlobsUsagePrivilege), .QueuesUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.UserId, PrivilegeConstants.QueuesUsagePrivilege), .SqlUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.UserId, PrivilegeConstants.SqlUsagePrivilege)})
  36. Return Me.View(users)
  37. End Function
  38. #Else
  39. Private ReadOnly membershipService As IMembershipService
  40. Public Sub New()
  41. Me.New(New UserTablesServiceContext(), New AccountMembershipService())
  42. End Sub
  43. <CLSCompliant(False)> _
  44. Public Sub New(ByVal userPrivilegesRepository As IUserPrivilegesRepository, ByVal membershipService As IMembershipService)
  45. Me.userPrivilegesRepository = userPrivilegesRepository
  46. Me.membershipService = membershipService
  47. End Sub
  48. Public Function Index() As ActionResult
  49. Dim users = Me.membershipService.GetAllUsers().Cast(Of MembershipUser)().Select(Function(user) New UserPermissionsModel With {.UserName = user.UserName, .UserId = user.ProviderUserKey.ToString(), .TablesUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.ProviderUserKey.ToString(), PrivilegeConstants.TablesUsagePrivilege), .BlobsUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.ProviderUserKey.ToString(), PrivilegeConstants.BlobsUsagePrivilege), .QueuesUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.ProviderUserKey.ToString(), PrivilegeConstants.QueuesUsagePrivilege), .SqlUsage = Me.userPrivilegesRepository.HasUserPrivilege(user.ProviderUserKey.ToString(), PrivilegeConstants.SqlUsagePrivilege)})
  50. Return Me.View(users)
  51. End Function
  52. #End If
  53. <HttpPost()> _
  54. Public Sub SetUserPermissions(ByVal userId As String, ByVal useTables As Boolean, ByVal useBlobs As Boolean, ByVal useQueues As Boolean, ByVal useSql As Boolean)
  55. Me.SetStorageItemUsagePrivilege(useTables, userId, PrivilegeConstants.TablesUsagePrivilege)
  56. Me.SetStorageItemUsagePrivilege(useBlobs, userId, PrivilegeConstants.BlobsUsagePrivilege)
  57. Me.SetStorageItemUsagePrivilege(useQueues, userId, PrivilegeConstants.QueuesUsagePrivilege)
  58. Me.SetStorageItemUsagePrivilege(useSql, userId, PrivilegeConstants.SqlUsagePrivilege)
  59. End Sub
  60. Private Sub SetStorageItemUsagePrivilege(ByVal allowAccess As Boolean, ByVal user As String, ByVal privilege As String)
  61. If allowAccess Then
  62. Me.userPrivilegesRepository.AddPrivilegeToUser(user, privilege)
  63. Else
  64. Me.userPrivilegesRepository.RemovePrivilegeFromUser(user, privilege)
  65. End If
  66. End Sub
  67. End Class
  68. End Namespace