public void Handle(UserManagementMessage.Create message) { if (!IsAdmin(message.Principal)) { ReplyUnauthorized(message); return; } var userData = CreateUserData(message); BeginReadUserDetails(message.LoginName, read => { if (read.Events.Count() > 0) { var data = read.Events[read.Events.Length - 1].Event.Data.ParseJson <UserData>(); if (VerifyPassword(message.Password, data)) { ReplyUpdated(message); return; } ReplyConflict(message); return; } WriteStreamAcl( message, message.LoginName, () => WriteUserEvent(message, userData, "$UserCreated", read.LastEventNumber, () => WriteUsersStreamEvent(userData.LoginName, completed => WriteUsersStreamCompleted(completed, message)))); }); }
private void PostUser(HttpEntityManager http) { if (_httpForwarder.ForwardRequest(http)) { return; } var envelope = CreateReplyEnvelope <UserManagementMessage.UpdateResult>( http, configurator: (codec, result) => { var configuration = AutoConfigurator(codec, result); return(configuration.Code == HttpStatusCode.OK ? configuration.SetCreated( MakeUrl(http, "/users/" + Uri.EscapeDataString(result.LoginName))) : configuration); }); http.ReadTextRequestAsync( (o, s) => { var data = http.RequestCodec.From <PostUserData>(s); var message = new UserManagementMessage.Create( envelope, http.User, data.LoginName, data.FullName, data.Groups, data.Password); Publish(message); }, x => Log.DebugException(x, "Reply Text Content Failed.")); }
public void Handle(UserManagementMessage.Create message) { if (!DemandAdmin(message)) { return; } var userData = CreateUserData(message); WriteStreamAcl( message, message.LoginName, () => WriteUserEvent(message, userData, "$UserCreated", ExpectedVersion.NoStream)); }
private UserData CreateUserData(UserManagementMessage.Create message) { return(CreateUserData(message.LoginName, message.FullName, message.Groups, message.Password)); }