Пример #1
0
        public void CanCompoundWellCome() {
            var um = (UserMessageService)_container.Get<IUserMessagingService>();
            var u = new User {Login = "******", Name = "Иванов", Email = "*****@*****.**"};
            new PasswordManager().MakeRequest(u,24*60);
            var message = um.CompoundMessage(u, "ref:wellcome", "support","test",null);
            Console.WriteLine(message.Body.Simplify(SimplifyOptions.SingleQuotes));
            Assert.AreEqual(@"<div>
  <h1>Уважаемый(ая) Иванов!</h1>
  <p>
    Данным письмом мы уведомляем Вас о том, что вы зарегистрированы на
    ресурсе '<a href='https://super.puper.com/login.html?referer=/home.html'>Супер-Пупер</a>'
    под учетной записью <strong>test</strong></p>
  <p>
    Для активации вашей учетной записи и регистрации Вашего пароля просим
    вас перейти по ссылке
    <a href='https://super.puper.com/resetpwd.html?login=test&amp;key=[KEY]'>Активация пользователя</a></p>
  <p>
    В случае, если Вы не уверены, что данная регистрация предназначается Вам,
    вы можете уточнить этот вопрос, послав соответствующий запрос
    ответным письмом
  </p>
  <p>
    C Уважением, адмнистрация ресурса 'Супер-Пупер'
  </p>
</div>".Replace("[KEY]", u.ResetKey), message.Body.Simplify(SimplifyOptions.SingleQuotes));
        }
Пример #2
0
 public void Setup() {
     clientService = new ClientService(
         userService = new UserService(
             userStore = new DictionaryUserSource()));
     userStore[SecurityConst.ROLE_ADMIN.ToLowerInvariant()] = new User {Login = SecurityConst.ROLE_ADMIN,IsAdmin = true}.Activate();
     userStore[SecurityConst.ROLE_SECURITY_ADMIN.ToLowerInvariant()] = new User {Login = SecurityConst.ROLE_SECURITY_ADMIN, Roles = new [] {SecurityConst.ROLE_SECURITY_ADMIN}}.Activate();
     userStore[SecurityConst.ROLE_USER.ToLowerInvariant()] = new User {Login = SecurityConst.ROLE_USER }.Activate();
     userStore["existed@groups"] = new User {Login = "******",IsGroup = true}.Activate();
     minimalValidRequest = new ClientRecord {Name = "ОАО Тест",IsDemo = true};
     doubleRequest = new ClientRecord {Name = "ОАО Existed",IsDemo = true};
     passwordManager = new PasswordManager();
     passLogon = new PasswordLogon {UserService = userService};
     userStateChecker = new UserStateChecker {UserService = userService};
 }
Пример #3
0
        public void CanSendWellcome() {
            var um = (UserMessageService)_container.Get<IUserMessagingService>();
            var u = new User { Login = "******", Name = "Иванов", Email = "*****@*****.**" };
            new PasswordManager().MakeRequest(u, 24 * 60);
            um.SendWelcome(u);
            var q = _container.Get<IMessageQueue>();
            var sender = _container.Get<IMessageSender>();
            var messages = q.GetRequireSendMessages().ToArray();

            foreach (var postMessage in messages) {
                if (postMessage.Addresses[0] == u.Email) {
                    sender.Send(postMessage);
                    q.MarkSent(postMessage.Id);
                }    
            }
        }
Пример #4
0
        private UpdateResult UpdateResult(IIdentity actor, IUser target, bool store, UserUpdateInfo updateinfo
          ) {
            UpdateResult res = null;
            Logg.Info(new {updateusr = "******", usr = actor.Name, info = updateinfo}.stringify());
            if (string.IsNullOrWhiteSpace(updateinfo.Login)) {
                updateinfo.Login = actor.Name;
            }
            target = target ?? Users.GetUser(updateinfo.Login);
            var newuser = target == null;
            if (!updateinfo.HasDelta(target)) {
                return new UpdateResult {Ok = true, Message="notchanged", ResultUser = target};
            }

            res = Checker.ValidateUpdate(actor, updateinfo, target);
            if (!res.Ok) {
                Logg.Warn(
                    new {updateusr = "******", validation = res, usr = actor.Name, info = updateinfo}.stringify());

                return res;
            }
            if (null == target) {
                target = new User {Login = updateinfo.Login};
            }
            updateinfo.Apply(target);
            UserPolicy policy = null;
            if (newuser) {
                policy = UserPolicy.GetNewUserPolicy(updateinfo);
            }
            if (null != policy) {
                policy.Apply(target);
            }
            if (store) {
                Users.Store(target);
            }
            if (null != policy && policy.MakePassRequest && null != Messendger) {
                if (newuser) {
                    Messendger.SendWelcome(target);
                }
            }
            Logg.Info(new {updateusr = "******", result = target, usr = actor.Name, info = updateinfo}.stringify());
            Users.Clear();
            Roles.Clear();
            res = new UpdateResult {Ok = true, ResultUser = target};
            return res;
        }