Пример #1
0
        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();
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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;
        }
Пример #5
0
        public Session Add(MetaLogin login)
        {
            var session = new Session()
            {
                LoginId   = login.Id,
                Username  = login.Username,
                SessionId = Guid.NewGuid()
            };

            _collection.Add(session);

            return(session);
        }
Пример #6
0
        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"));
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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.");
        }