Esempio n. 1
0
        public void OnLogin(SynkContext context)
        {
            var username = context.loadVarFromRequest("username");
            var password = context.loadVarFromRequest("password");

            var dbName = context.config.GetFieldValue("database");
            var cond   = Condition.Equal("username", username);
            var user   = context.database.FetchEntity <User>(cond);

            string hash = null;

            if (user != null && user.exists)
            {
                hash = user.GetFieldValue("hash");
            }

            if (context.database.failed)
            {
                context.warning = "Database error!";
                context.PushTemplate("auth/default");
            }
            else
            if (user != null && user.exists && (string.IsNullOrEmpty(hash) || this.checkPassword(password, hash)))
            {
                if (context.config.GetFieldBool("instanced"))
                {
                    dbName = user.GetFieldValue("database");
                }

                context.LogIn(user.id, dbName);

                ShowDefaultPage(context);
                return;
            }
            else
            {
                if (user.exists)
                {
                    context.warning = "Dados de login invalidos!";
                }
                else
                {
                    context.warning = "Utilizador não existente!";
                }

                context.PushTemplate("auth/default");
            }

            context.Render();
        }