public ActionResult AdminLogin(MetaLogin model) { // Fetch the stored value string password = ""; string savedPasswordHash = Db.SscisParam.Where(p => p.ParamKey.Equals(SSCISParameters.ADMINPASSWORD, StringComparison.OrdinalIgnoreCase)).Single().ParamValue; if (model != null && !string.IsNullOrEmpty(model.Password)) { password = model.Password; } bool match = new PasswordHash().Decode(savedPasswordHash, password); if (match) { var count = Db.SscisUser.Count(usr => usr.Login.Equals(model.Login, StringComparison.OrdinalIgnoreCase)); if (count == 1) { new SSCISSessionManager().SessionStart(model.Login, HttpContext); if (model.RedirectionUrl != null) { return(Redirect(model.RedirectionUrl)); } return(RedirectToAction("Index")); } return(AdminLogin("Invalid login")); } else { return(AdminLogin("Invalid login")); throw new UnauthorizedAccessException(); } }
public ActionResult AdminLogin(string validationMessage = null, string redirectionUrl = null) { SscisParam pass = Db.SscisParam.SingleOrDefault(p => p.ParamKey.Equals(SSCISParameters.ADMINPASSWORD, StringComparison.OrdinalIgnoreCase)); if (pass == null) { SscisParam password = new SscisParam(); password.Description = "Admin password!"; password.ParamKey = SSCISParameters.ADMINPASSWORD; password.ParamValue = new PasswordHash().Encode("VasaAdmin");; Db.SscisParam.Add(password); Db.SaveChanges(); } string redirectUrl = WebUtility.UrlDecode(redirectionUrl); ViewBag.Title = "Login"; MetaLogin model = new MetaLogin { ValidationMessage = validationMessage, RedirectionUrl = redirectionUrl }; return(View(model)); }
public ActionResult Login(string validationMessage = null, string redirectionUrl = null) { string redirectUrl = WebUtility.UrlDecode(redirectionUrl); bool webauth = BoolParser.Parse(Db.SscisParam.Where(p => p.ParamKey.Equals(SSCISParameters.WEBAUTHON, StringComparison.OrdinalIgnoreCase)).Single().ParamValue); string testAuthParametr; if (webauth) { string webAuth = Db.SscisParam.Where(p => p.ParamKey.Equals(SSCISParameters.WEBAUTHURL)).Single().ParamValue.ToString(); if (redirectionUrl != null) { testAuthParametr = webAuth + "?redirect=" + WebUtility.UrlEncode(redirectionUrl); } else { testAuthParametr = webAuth; } return(Redirect(testAuthParametr)); } ViewBag.Title = "Login"; MetaLogin model = new MetaLogin { ValidationMessage = validationMessage, RedirectionUrl = redirectionUrl }; return(View(model)); }
static M() { // Interfaces Object = MetaObject.Instance; Cachable = MetaCachable.Instance; Deletable = MetaDeletable.Instance; Enumeration = MetaEnumeration.Instance; UniquelyIdentifiable = MetaUniquelyIdentifiable.Instance; Version = MetaVersion.Instance; Versioned = MetaVersioned.Instance; Printable = MetaPrintable.Instance; Localised = MetaLocalised.Instance; AccessControlledObject = MetaAccessControlledObject.Instance; DelegatedAccessControlledObject = MetaDelegatedAccessControlledObject.Instance; SecurityTokenOwner = MetaSecurityTokenOwner.Instance; ObjectState = MetaObjectState.Instance; Task = MetaTask.Instance; Transitional = MetaTransitional.Instance; TransitionalVersion = MetaTransitionalVersion.Instance; User = MetaUser.Instance; WorkItem = MetaWorkItem.Instance; // Classes Employment = MetaEmployment.Instance; Organisation = MetaOrganisation.Instance; Person = MetaPerson.Instance; Settings = MetaSettings.Instance; Singleton = MetaSingleton.Instance; Counter = MetaCounter.Instance; Media = MetaMedia.Instance; MediaContent = MetaMediaContent.Instance; PrintDocument = MetaPrintDocument.Instance; Template = MetaTemplate.Instance; TemplateType = MetaTemplateType.Instance; PreparedExtent = MetaPreparedExtent.Instance; PreparedFetch = MetaPreparedFetch.Instance; Country = MetaCountry.Instance; Currency = MetaCurrency.Instance; Language = MetaLanguage.Instance; Locale = MetaLocale.Instance; LocalisedText = MetaLocalisedText.Instance; AccessControl = MetaAccessControl.Instance; Login = MetaLogin.Instance; Permission = MetaPermission.Instance; Role = MetaRole.Instance; SecurityToken = MetaSecurityToken.Instance; AutomatedAgent = MetaAutomatedAgent.Instance; EmailMessage = MetaEmailMessage.Instance; Notification = MetaNotification.Instance; NotificationList = MetaNotificationList.Instance; TaskAssignment = MetaTaskAssignment.Instance; TaskList = MetaTaskList.Instance; UserGroup = MetaUserGroup.Instance; }
public Session Add(MetaLogin login) { var session = new Session() { LoginId = login.Id, Username = login.Username, SessionId = Guid.NewGuid() }; _collection.Add(session); return(session); }
public ActionResult Login(MetaLogin model) { var count = Db.SscisUser.Count(usr => usr.Login.Equals(model.Login, StringComparison.OrdinalIgnoreCase)); if (count == 1) { new SSCISSessionManager().SessionStart(model.Login, HttpContext); if (model.RedirectionUrl != null) { return(Redirect(model.RedirectionUrl)); } return(RedirectToAction("Index")); } return(Login("Invalid login")); }
private static Dictionary <string, object> GetDictionary(MetaLogin metaLogin) { var dictionary = new Dictionary <string, object>(); if (metaLogin == null) { return(dictionary); } dictionary.Add("Catalog", metaLogin.Catalog); dictionary.Add("Culture", metaLogin.View.Culture); dictionary.Add("Email", metaLogin.View.Email); dictionary.Add("Office", metaLogin.View.Office); dictionary.Add("OfficeId", metaLogin.View.OfficeId); dictionary.Add("OfficeName", metaLogin.View.OfficeName); dictionary.Add("RoleName", metaLogin.View.RoleName); dictionary.Add("UserId", metaLogin.View.UserId); dictionary.Add("UserName", metaLogin.View.Email); return(dictionary); }
public static MetaLogin GetCurrent(long globalLoginId) { var login = new MetaLogin(); if (globalLoginId != 0) { var cacheObject = CacheFactory.GetFromDefaultCacheByKey(globalLoginId.ToString(CultureInfo.InvariantCulture)); login = cacheObject as MetaLogin; } if (login == null) { login = new MetaLogin(); } if (login.View == null) { login.View = new LoginView(); } return(login); }
private void Initialize(IStartupOptions startOptions) { LogInformation("Initializing core.."); if (File.Exists(startOptions.ConfigFile)) { LogInformation("Loading configuration."); //The IOManager is not initialized yet, so read the data directly. Settings = JsonConvert.DeserializeObject <MetaServerSettings>(File.ReadAllText(startOptions.ConfigFile)); } else { LogInformation("Initializing new configuration."); Settings = new MetaServerSettings(startOptions.RootPath) { //TODO: Add additional startup options. }; } #region Create Directory Structure. if (Directory.Exists(Settings.RootPath) == false) { Directory.CreateDirectory(Settings.RootPath); } if (Directory.Exists(Settings.TransactionPath) == false) { Directory.CreateDirectory(Settings.TransactionPath); } #endregion //Settings.LoginFile if (File.Exists(Settings.ConfigFile) == false) { //The IOManager is not initialized yet, so write the data directly. File.WriteAllText(Settings.ConfigFile, JsonConvert.SerializeObject(Settings)); } if (File.Exists(Settings.LoginFile) == false) { var loginCatalog = new MetaLoginCollection(); #if DEBUG var defaultLogin = new MetaLogin("root"); defaultLogin.SetPassword("p@ssWord!"); loginCatalog.Add(defaultLogin); #endif //The IOManager is not initialized yet, so write the data directly. File.WriteAllText(Settings.LoginFile, JsonConvert.SerializeObject(loginCatalog)); } LogInformation("Initializing security engine."); Security = new SecurityEngine(this); LogInformation("Initializing IO engine."); IO = new IOEngine(this); LogInformation("Initializing schema engine."); Schema = new SchemaEngine(this); LogInformation("Initializing session engine."); Session = new SessionEngine(this); LogInformation("Initializing latch engine."); Latch = new LatchEngine(this); LogInformation("Initializing transaction engine."); Transaction = new TransactionEngine(this); LogInformation("Initializing document engine."); Document = new DocumentEngine(this); LogInformation("Initializing query engine."); Query = new QueryEngine(this); LogInformation("Starting transaction recovery."); Transaction.Recover(); LogInformation("Transaction recovery complete."); }