public void SaveUser(User user) { if (user == null) throw new ArgumentNullException("user"); lock (syncRoot) { var bareJid = GetBareJid(user.Jid); ExecuteNonQuery(new SqlInsert("jabber_user", true) .InColumnValue("jid", bareJid) .InColumnValue("pwd", user.Password) .InColumnValue("admin", user.IsAdmin)); Users[bareJid] = user; } }
private IQ SetRegister(XmppStream stream, IQ iq, XmppHandlerContext context) { var register = (Register)iq.Query; iq.Type = IqType.result; if (register.RemoveAccount) { if (!stream.Authenticated || !iq.From.HasUser) context.Sender.SendToAndClose(stream, XmppStreamError.NotAuthorized); context.UserManager.RemoveUser(iq.From); foreach (var s in context.SessionManager.GetBareJidSessions(iq.From)) { if (s.Stream.Id == stream.Id) continue; context.Sender.SendToAndClose(s.Stream, XmppStreamError.Conflict); } //TODO: remove roster subscriptions register.RemoveAllChildNodes(); iq.SwitchDirection(); return iq; } if (string.IsNullOrEmpty(register.Username) || string.IsNullOrEmpty(register.Password) || Stringprep.NamePrep(register.Username) != register.Username) { var error = XmppStanzaError.ToNotAcceptable(iq); if (string.IsNullOrEmpty(register.Username)) error.Error.Message = "Empty required field Username."; else if (string.IsNullOrEmpty(register.Password)) error.Error.Message = "Empty required field Password."; else if (Stringprep.NamePrep(register.Username) != register.Username) error.Error.Message = "Invalid character."; return error; } var userJid = new Jid(register.Username, stream.Domain, null); if (context.UserManager.IsUserExists(userJid)) { return XmppStanzaError.ToConflict(iq); } var user = new User(userJid, register.Password); context.UserManager.SaveUser(user); register.RemoveAllChildNodes(); if (stream.Authenticated) iq.SwitchDirection(); else iq.To = null; iq.From = null; return iq; }
public void UserTest() { var jid = new Jid("jid1", "s", "R1"); var user = new User(jid, "1", true); store.SaveUser(user); var u = store.GetUser(jid); Assert.IsNotNull(u); Assert.AreEqual(user.Password, u.Password); Assert.AreEqual(user.IsAdmin, u.IsAdmin); Assert.AreEqual(user.Jid.Bare, u.Jid.Bare); u = store.GetUser(new Jid("jid2", "s", "R1")); Assert.IsNull(u); CollectionAssert.IsEmpty(store.GetUsers("s2")); foreach (var us in store.GetUsers("s")) { store.RemoveUser(us.Jid); } CollectionAssert.IsEmpty(store.GetUsers("s")); }
public void SaveUser(User user) { UserStore.SaveUser(user); }
public void SaveUser(User user) { throw new JabberException(ErrorCode.Forbidden); }