From afb8578d17794519b1ab1136ce08286d2ab31bdf Mon Sep 17 00:00:00 2001 From: Andrew Ma Date: Thu, 5 Aug 2010 16:27:42 -0700 Subject: [PATCH] Creating a commandline option to create users --HG-- branch : dev --- .../Orchard.Users/Commands/UserCommands.cs | 64 +++++++++++++++++++ .../Orchard.Users/Orchard.Users.csproj | 1 + 2 files changed, 65 insertions(+) create mode 100644 src/Orchard.Web/Modules/Orchard.Users/Commands/UserCommands.cs diff --git a/src/Orchard.Web/Modules/Orchard.Users/Commands/UserCommands.cs b/src/Orchard.Web/Modules/Orchard.Users/Commands/UserCommands.cs new file mode 100644 index 000000000..7913de574 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Users/Commands/UserCommands.cs @@ -0,0 +1,64 @@ +using System; +using System.Linq; +using System.Text.RegularExpressions; +using System.Xml.Linq; +using Orchard.Commands; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Aspects; +using Orchard.Security; +using Orchard.Users.Services; +using System.Web.Security; + +namespace Orchard.Users.Commands { + public class UserCommands : DefaultOrchardCommandHandler { + private readonly IContentManager _contentManager; + private readonly IMembershipService _membershipService; + private readonly IUserService _userService; + + public UserCommands( + IContentManager contentManager, + IMembershipService membershipService, + IUserService userService) { + _contentManager = contentManager; + _membershipService = membershipService; + _userService = userService; + } + + [OrchardSwitch] + public string UserName { get; set; } + + [OrchardSwitch] + public string Password { get; set; } + + [OrchardSwitch] + public string Email { get; set; } + + [OrchardSwitch] + public string FileName { get; set; } + + [CommandName("user create")] + [CommandHelp("user create /UserName: /Password: /Email:\r\n\t" + "Creates a new User")] + [OrchardSwitches("UserName,Password,Email")] + public string Create() { + string userUnicityMessage = _userService.VerifyUserUnicity(UserName, Email); + if (userUnicityMessage != null) { + return userUnicityMessage; + } + if (Password == null || Password.Length < MinPasswordLength) { + return String.Format("You must specify a password of {0} or more characters.", MinPasswordLength); + } + + var user = _membershipService.CreateUser(new CreateUserParams(UserName, Password, Email, null, null, true)); + if (user != null) + return "User created successfully"; + else + return "The authentication provider returned an error"; + } + + int MinPasswordLength { + get { + return _membershipService.GetSettings().MinRequiredPasswordLength; + } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj index 8c037b7ac..9e7e55e13 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj +++ b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj @@ -66,6 +66,7 @@ +