Пример #1
0
        public virtual ActionResult Giriş(GirişModel model, string dönenUrl, bool captchaDoğrulandı)
        {
            /*
             * //CAPTCHA doğrula
             * if (_captchaSettings.Enabled && _captchaSettings.ShowOnLoginPage && !captchaValid)
             * {
             *  ModelState.AddModelError("", _captchaSettings.GetWrongCaptchaMessage(_localizationService));
             * }
             */
            if (ModelState.IsValid)
            {
                if (_kullanıcıAyarları.KullanıcıAdlarıEtkin && model.KullanıcıAdı != null)
                {
                    model.KullanıcıAdı = model.KullanıcıAdı.Trim();
                }
                var girişSonucu =
                    _kullanıcıKayıtServisi.KullanıcıDoğrula(
                        _kullanıcıAyarları.KullanıcıAdlarıEtkin ? model.KullanıcıAdı : model.Email, model.Şifre);
                switch (girişSonucu)
                {
                case KullanıcıGirişSonuçları.Başarılı:
                {
                    var kullanıcı = _kullanıcıAyarları.KullanıcıAdlarıEtkin
                                ? _kullanıcıServisi.KullanıcıAlSistemAdı(model.KullanıcıAdı)
                                : _kullanıcıServisi.KullanıcıAlEmail(model.Email);

                    //yeni kullanıcı olarak giriş yapıldı
                    _kimlikDoğrulamaServisi.Giriş(kullanıcı, model.BeniHatırla);

                    //olay
                    _olayYayınlayıcı.Yayınla(new KullanıcıBağlandıOlayı(kullanıcı));

                    //log ekle
                    //_kullanıcıAktiviteServisi.AktiviteEkle(kullanıcı, "GenelSite.Login", _localizationService.GetResource("ActivityLog.PublicStore.Login"));

                    if (String.IsNullOrEmpty(dönenUrl) || !Url.IsLocalUrl(dönenUrl))
                    {
                        return(RedirectToRoute("HomePage"));
                    }

                    return(Redirect(dönenUrl));
                }

                case KullanıcıGirişSonuçları.KullanıcıMevcutDeğil:
                    ModelState.AddModelError("", "Kullanıcı bulunamadı");
                    break;

                case KullanıcıGirişSonuçları.Silindi:
                    ModelState.AddModelError("", "Kullanıcı silindi");
                    break;

                case KullanıcıGirişSonuçları.AktifDeğil:
                    ModelState.AddModelError("", "Kullanıcı aktifleştirilmedi");
                    break;

                case KullanıcıGirişSonuçları.KayıtlıDeğil:
                    ModelState.AddModelError("", "Kullanıcı henüz kayıtlı değil");
                    break;

                case KullanıcıGirişSonuçları.Kilitlendi:
                    ModelState.AddModelError("", "Kullanıcı kilitlendi");
                    break;

                case KullanıcıGirişSonuçları.HatalıŞifre:
                default:
                    ModelState.AddModelError("", "Hatalı şifre");
                    break;
                }
            }

            //If we got this far, something failed, redisplay form
            model = _kullanıcıModelFabrikası.GirişModelHazırla();
            return(View(model));
        }
        protected virtual IActionResult RegisterNewUser(HariciYetkilendirmeParametreleri parameters, string returnUrl)
        {
            //check whether the specified email has been already registered
            if (_kullanıcıServisi.KullanıcıAlEmail(parameters.Email) != null)
            {
                var alreadyExistsError = "E-Mail adresi zaten mevcut";
                return(ErrorAuthentication(new[] { alreadyExistsError }, returnUrl));
            }

            var registrationIsApproved = _kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.Standart ||
                                         (_kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.EmailDoğrulaması && !_hariciYetkilendirmeAyarları.EmailDoğrulamasıGerekli);

            var registrationRequest = new KullanıcıKayıtİsteği(_workContext.MevcutKullanıcı,
                                                               parameters.Email, parameters.Email,
                                                               GenelYardımcı.RastgeleOndalıklıÜret(20),
                                                               ŞifreFormatı.Temiz,
                                                               _siteContext.MevcutSite.Id,
                                                               registrationIsApproved);

            var registrationResult = _kullanıcıKayıtServisi.KullanıcıKaydet(registrationRequest);

            if (!registrationResult.Başarılı)
            {
                return(ErrorAuthentication(registrationResult.Hatalar, returnUrl));
            }

            _olayYayınlayıcı.Yayınla(new KullanıcıHariciOlarakOtomatikKaydedildi(_workContext.MevcutKullanıcı, parameters));

            _olayYayınlayıcı.Yayınla(new KullanıcıKaydolduOlayı(_workContext.MevcutKullanıcı));

            if (_kullanıcıAyarları.YeniKullanıcıBildirimi)
            {
                //_workflowMessageService.SendCustomerRegisteredNotificationMessage(_workContext.MevcutKullanıcı, _localizationSettings.DefaultAdminLanguageId);

                HariciHesabıKullanıcıylaİlişkilendir(_workContext.MevcutKullanıcı, parameters);
            }

            //yetkilendir
            if (registrationIsApproved)
            {
                _yetkilendirmeServisi.Giriş(_workContext.MevcutKullanıcı, false);
                //_workflowMessageService.SendCustomerWelcomeMessage(_workContext.MevcutKullanıcı, _workContext.WorkingLanguage.Id);

                return(new RedirectToRouteResult("RegisterResult", new { resultId = (int)KullanıcıKayıtTipi.Standart }));
            }

            //registration is succeeded but isn't activated
            if (_kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.EmailDoğrulaması)
            {
                //email validation message
                _genelÖznitelikServisi.ÖznitelikKaydet(_workContext.MevcutKullanıcı, SistemKullanıcıÖznitelikAdları.HesapAktifleştirmeKodu, Guid.NewGuid().ToString());
                //_workflowMessageService.SendCustomerEmailValidationMessage(_workContext.MevcutKullanıcı, _workContext.WorkingLanguage.Id);

                return(new RedirectToRouteResult("RegisterResult", new { resultId = (int)KullanıcıKayıtTipi.EmailDoğrulaması }));
            }

            if (_kullanıcıAyarları.KullanıcıKayıtTipi == KullanıcıKayıtTipi.YöneticiOnayı)
            {
                return(new RedirectToRouteResult("RegisterResult", new { resultId = (int)KullanıcıKayıtTipi.YöneticiOnayı }));
            }

            return(ErrorAuthentication(new[] { "Error on registration" }, returnUrl));
        }