public bool AssignRightsToUser(string username, ArrayList rights) { bool ret = true; try { User usr = User.LoadByUsername(username); foreach (string right in rights) { if (!usr.HasRight(right)) { usr.AssignRight(right); } } List <UserRight> tmp = new List <UserRight>(usr.Rights); foreach (UserRight right in tmp) { if (!rights.Contains(right.Name)) { usr.RemoveRight(right.Name); } } usr.Update(); } catch (Exception e) { EventController.TriggerEvent(new ErrorOccuredEvent(e)); Log.Error(e); ret = false; } return(ret); }
public List <NameValuePair> GetUserRights(string username) { List <NameValuePair> ret = new List <NameValuePair>(); User usr = User.LoadByUsername(username); foreach (UserRight ur in UserRight.All) { ret.Add(new NameValuePair(ur.Name, usr.HasRight(ur.Name).ToString().ToLower())); } return(ret); }
public bool UpdateUserPassword(string username, string newpass) { try { User usr = User.LoadByUsername(username); usr.SetPassword(newpass, Constants.HTTP_AUTH_REALM); usr.Update(); } catch (Exception e) { EventController.TriggerEvent(new ErrorOccuredEvent(e)); Log.Error(e); return(false); } return(true); }
public static UserRight CreateRight(string name) { Log.Trace("Creating UserRight " + name); Connection conn = ConnectionPoolManager.GetConnection(typeof(UserRight)); Log.Trace("Checking is UserRight " + name + " already exists"); List <Org.Reddragonit.Dbpro.Structure.Table> tmp = conn.Select(typeof(UserRight), new SelectParameter[] { new EqualParameter("Name", name) }); UserRight ret = null; if (tmp.Count > 0) { Log.Trace("UserRight " + name + " already exists in the database"); ret = (UserRight)tmp[0]; } else { Log.Trace("UserRight " + name + " does not exists in the database, adding it now"); ret = new UserRight(); ret.Name = name; ret = (UserRight)conn.Save(ret); conn.Commit(); User u = User.LoadByUsername("admin"); if (u != null) { bool found = false; foreach (UserRight ur in u.Rights) { if (ur.Name == ret.Name) { found = true; break; } } if (!found) { List <UserRight> rights = new List <UserRight>(u.Rights); rights.Add(ret); u.Rights = rights.ToArray(); u.Update(); } } } conn.CloseConnection(); return(ret); }
public static void PostAuthenticationFailure(HttpRequest request, string username) { _loginCount++; if (_loginCount >= _maxAttempts) { EventController.TriggerEvent(new UserLoginEvent(username, ((IPEndPoint)request.Client).Address, UserLoginEvent.LoginEventTypes.ATTEMPTS_EXCEEDED)); User usr = User.LoadByUsername(username); if (usr != null) { usr.Locked = true; usr.Update(); } request.ResponseStatus = HttpStatusCodes.Forbidden; } else { EventController.TriggerEvent(new UserLoginEvent(username, ((IPEndPoint)request.Client).Address, UserLoginEvent.LoginEventTypes.FAILURE)); } }
public static void PostAuthentication(HttpRequest request, sHttpAuthUsernamePassword user) { _loginCount = 0; User usr = User.LoadByUsername(user.UserName); if (usr.AttachedDomain != null) { request.Session[Context.SESSION_ID] = usr.AttachedDomain.InternalProfile.Context; request.Session[Domain.SESSION_ID] = usr.AttachedDomain; } else if (usr.AllowedDomains != null) { if (usr.AllowedDomains.Length > 0) { request.Session[Context.SESSION_ID] = usr.AllowedDomains[0].InternalProfile.Context; request.Session[Domain.SESSION_ID] = usr.AllowedDomains[0]; } } request.Session[User.STORAGE_ID] = usr; EventController.TriggerEvent(new UserLoginEvent(user.UserName, ((IPEndPoint)request.Client).Address, UserLoginEvent.LoginEventTypes.SUCCESS)); }
public string Logout() { if (Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Users.User.Current != null) { Log.Trace("Logging out user " + Org.Reddragonit.FreeSwitchConfig.DataCore.DB.Users.User.Current.FirstName); } else { EventController.TriggerEvent(new ErrorOccuredEvent("There is no user logged in to be logged out")); Log.Error("There is no user logged in to be logged out"); } Request.Session.Abandon(); string uname = "ABCDEFGH"; while (User.LoadByUsername(uname) != null) { for (int x = 0; x < uname.Length; x++) { uname = (x == 0 ? "" : uname.Substring(0, x)) + _USERNAME_CHARS[_rand.RandomRange(0, _USERNAME_CHARS.Length - 1)].ToString() + (x + 1 == uname.Length ? "" : uname.Substring(x + 1)); } } return((Request.IsSSL ? "https://" : "http://") + uname + "@" + Request.URL.Host + ":" + Request.URL.Port.ToString() + "/"); }