Beispiel #1
0
        public async Task <ActionResult> ForgotPassword(ForgottenPassword model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    //ModelState.AddModelError("", "Email doesn't exist");
                    ViewBag.SuccessMessage = $"An email will be sent to the specified address with instructions on how to reset your password, if the address matches our records";
                    return(View(model));
                }

                var token = Guid.NewGuid().ToString();

                var meta = new PuckMeta {
                    Name    = DBNames.PasswordResetToken
                    , Key   = token
                    , Value = model.Email
                };
                repo.AddPuckMeta(meta);
                repo.SaveChanges();

                var uri      = HttpContext.Request.GetUri() ?? PuckCache.FirstRequestUrl;
                var resetUrl = uri.Scheme + "://"
                               + uri.Host
                               + (uri.Port != 80 ? (":" + uri.Port) : "")
                               + $"/puck/admin/resetpassword?token={token}";

                puck.core.Helpers.ApiHelper.Email(
                    model.Email
                    , "Reset your password - Puck CMS"
                    , $"click <a href=\"{resetUrl}\">here</a> to reset your password."
                    );

                ViewBag.SuccessMessage = $"An email will be sent to the specified address with instructions on how to reset your password, if the address matches our records";

                return(View(model));
            }
            return(View(model));
        }
Beispiel #2
0
        public async Task <ActionResult> Edit(string p_type, IFormCollection fc)
        {
            //var targetType = Type.GetType(p_type);
            var    targetType = apiHelper.TaskTypes().FirstOrDefault(x => x.FullName.Equals(p_type));
            var    model      = Activator.CreateInstance(targetType);
            bool   success    = false;
            string message    = "";

            try
            {
                if (await TryUpdateModelAsync(model, model.GetType(), ""))
                {
                    var      mod      = model as BaseTask;
                    PuckMeta taskMeta = null;
                    if (mod.Id != -1)
                    {
                        taskMeta       = repo.GetPuckMeta().Where(x => x.Id == mod.Id).FirstOrDefault();
                        taskMeta.Value = JsonConvert.SerializeObject(mod);
                    }
                    else
                    {
                        taskMeta       = new PuckMeta();
                        taskMeta.Name  = DBNames.Tasks;
                        taskMeta.Key   = mod.GetType().FullName;
                        taskMeta.Value = taskMeta.Value = JsonConvert.SerializeObject(mod);
                        repo.AddPuckMeta(taskMeta);
                    }
                    repo.SaveChanges();
                    StateHelper.UpdateTaskMappings(true);
                    success = true;
                }
                else
                {
                    success = false;
                    message = string.Join(" ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ex.Message;
                log.Log(ex);
            }
            return(Json(new { success = success, message = message }));
        }
Beispiel #3
0
        public async Task <JsonResult> EditParameters(string puck_settingsType, string puck_modelType, string puck_propertyName, IFormCollection fc)
        {
            string key = string.Concat(puck_settingsType, ":", puck_modelType, ":", puck_propertyName);
            //var targetType = Type.GetType(puck_settingsType);
            var    targetType = ApiHelper.EditorSettingTypes().FirstOrDefault(x => x.FullName == puck_settingsType);
            var    model      = Activator.CreateInstance(targetType);
            bool   success    = false;
            string message    = "";

            try
            {
                if (await this.TryUpdateModelAsync(model, targetType, ""))
                {
                    PuckMeta settingsMeta = null;
                    settingsMeta = repo.GetPuckMeta().Where(x => x.Name == DBNames.EditorSettings && x.Key == key).FirstOrDefault();
                    if (settingsMeta != null)
                    {
                        settingsMeta.Value = JsonConvert.SerializeObject(model);
                    }
                    else
                    {
                        settingsMeta       = new PuckMeta();
                        settingsMeta.Name  = DBNames.EditorSettings;
                        settingsMeta.Key   = key;
                        settingsMeta.Value = JsonConvert.SerializeObject(model);
                        repo.AddPuckMeta(settingsMeta);
                    }

                    //clear cached values
                    var cachePrefix = "editor_settings_";
                    var cacheKey    = cachePrefix + key;
                    cache.Remove(cacheKey);
                    cache.Remove("null_" + cacheKey);

                    var instruction = new PuckInstruction()
                    {
                        Count             = 2,
                        ServerName        = ApiHelper.ServerName(),
                        InstructionDetail = $"{cacheKey},{"null_"+cacheKey}",
                        InstructionKey    = InstructionKeys.RemoveFromCache
                    };
                    repo.AddPuckInstruction(instruction);

                    repo.SaveChanges();

                    ApiHelper.OnAfterSettingsSave(this, new puck.core.Events.AfterEditorSettingsSaveEventArgs {
                        Setting = (I_Puck_Editor_Settings)model
                        , SettingsTypeFullName = puck_settingsType
                        , ModelTypeName        = puck_modelType
                        , PropertyName         = puck_propertyName
                    });
                    success = true;
                }
                else
                {
                    success = false;
                    message = string.Join(" ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ex.Message;
                log.Log(ex);
            }
            return(Json(new { success = success, message = message }));
        }