public JsonResult SaveFieldGroup(int GroupID, string Name, string Description, string Order, bool IsActive, bool AdminUseOnly) { ProfileFieldGroup fieldGroup = ProfileFieldGroups.GetBy(GroupID); String Message = ""; if (fieldGroup.FieldGroupName.Trim().ToLower() != Name.Trim().ToLower()) { if (ProfileFieldGroups.GetByName(Name.Trim()).FieldGroupID > 0) { Message = "The group \"" + Name + "\" already exists."; } } if (fieldGroup.FieldGroupName.Trim().ToLower().Length == 0) { Message = "The group name should not be empty."; } if (Message != "") { RequestResultModel _model = new RequestResultModel(); _model.InfoType = RequestResultInfoType.ErrorOrDanger; _model.Message = Message; AuditEvent.AppEventWarning(Profile.Member.Email, Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model), }, JsonRequestBehavior.AllowGet)); } fieldGroup.FieldGroupName = Name; fieldGroup.FieldGroupDescription = Description; fieldGroup.IsActive = IsActive ? 1 : 0; fieldGroup.AdminUseOnly = AdminUseOnly ? 1 : 0; fieldGroup.Save(); if (GroupID > 0) { AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format("The \"{0}\" profile group has been updated.", Name)); } else { AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format("The \"{0}\" profile group has been added.", Name)); } if (Order != "") { ProfileFieldGroups.UpdateOrder(Order); } return(Json(new { NotifyType = -1, Html = "", }, JsonRequestBehavior.AllowGet)); }
public ActionResult Index() { if (User != null && User.Identity != null && User.Identity.IsAuthenticated) { if (AppSession.IsMemberInAdminRole) { String ReturnUrl = Request.QueryString["returnUrl"]; String RedirectTo = ""; if (ReturnUrl != null && ReturnUrl.Length > 0) { RedirectTo = ReturnUrl; } else if (AppSession.Parameters.RulesRedirectAfterLogout != null && AppSession.Parameters.RulesRedirectAfterLogout.Value.Length > 0) { if (AppSession.Parameters.GeneralMaintenanceEnabled.Value != "true") { RedirectTo = AppSession.Parameters.RulesRedirectAfterLogout.Value; } else { RedirectTo = Url.Content("~/SignOut"); } } else { RedirectTo = Url.Content("~/SignOut"); } if (AppSession.Parameters.GeneralSecretAdminUrl.Value != null && AppSession.Parameters.GeneralSecretAdminUrl.Value.Length > 0) { if (Request.Url.AbsolutePath.ToLower().IndexOf(AppSession.Parameters.GeneralSecretAdminUrl.Value.ToLower()) < 0) { AuditEvent.AppEventWarning(AppSession.Parameters.GeneralAdminEmail.Value, "Secret admin UI is active. Member tries to enter admin UI by direct link: " + Request.Url.AbsoluteUri + " and will be redirected to " + RedirectTo); return(new RedirectResult(RedirectTo)); } else if (Request.Url.AbsolutePath.ToLower().IndexOf("/admin") < 0) { AuditEvent.AppEventWarning(AppSession.Parameters.GeneralAdminEmail.Value, "Member tries to enter admin UI by direct link: " + Request.Url.AbsoluteUri + " and will be redirected to " + RedirectTo); return(new RedirectResult(RedirectTo)); } } return(View("HomeAdmin")); } else { return(View("HomeMember")); } } return(View("HomePublic")); }
public JsonResult RemoveFieldGroup(int GroupID) { ProfileFieldGroup fieldGroup = ProfileFieldGroups.GetBy(GroupID); RequestResultModel _model = new RequestResultModel(); if (fieldGroup.FieldGroupID > 0) { fieldGroup.Delete(); _model.InfoType = RequestResultInfoType.Success; _model.Message = "The group \"" + fieldGroup.FieldGroupName + "\" has been removed."; if (GroupID > 0) { AuditEvent.AppEventSuccess(Profile.Member.Email, _model.Message); } return(Json(new { NotifyType = NotifyType.PageInline, Html = this.RenderPartialView(@"_RequestResultPageInLine", _model), }, JsonRequestBehavior.AllowGet)); } else { _model.InfoType = RequestResultInfoType.Success; _model.Message = "The group doesn't exist."; AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.PageInline, Html = this.RenderPartialView(@"_RequestResultPageInLine", _model), }, JsonRequestBehavior.AllowGet)); } }
public JsonResult SaveDomain(DomainInfo Info) { RequestResultModel _model = new RequestResultModel(); if (Info.Name == null || Info.Name.Trim().Length == 0) { _model = new RequestResultModel(); _model.Title = "Warning"; _model.Message = "Name is empty. Please, enter domain name."; _model.InfoType = RequestResultInfoType.ErrorOrDanger; AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } if (Info.DomainID > 0) { Domain domain = Web.Admin.Logic.Collections.Domains.GetBy(Info.DomainID); Domain domainExists = Web.Admin.Logic.Collections.Domains.GetByName(Info.Name); // The domain has been deleted. if (domain.DomainID <= 0) { _model.Title = "Warning"; _model.Message = String.Format("Domain '{0}' doesn't exist. Please, refresh role list and try again.", domainExists.Name); AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } // The domain already esists. if (domainExists.DomainID > 0 && Info.DomainID != domainExists.DomainID) { _model.Title = "Warning"; _model.Message = String.Format("Domain '{0}' already exists. Please, change domain name and try again.", domainExists.Name); AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } domain.Name = Info.Name; domain.Description = Info.Description; domain.Save(); _model = new RequestResultModel(); _model.Message = String.Format("Domain \"{0}\"has been updated.", domain.Name); _model.HideInSeconds = 4000; AuditEvent.AppEventSuccess(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.PageInline, Html = this.RenderPartialView(@"_RequestResultPageInLine", _model) }, JsonRequestBehavior.AllowGet)); } else { Domain domainExists = Web.Admin.Logic.Collections.Domains.GetByName(Info.Name); // The domain already esists. if (domainExists.DomainID > 0) { _model.Title = "Warning"; _model.Message = String.Format("Domain '{0}' already exists. Please, change domain name and try again.", domainExists.Name); _model.InfoType = RequestResultInfoType.ErrorOrDanger; return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } Domain Domain = new Domain(); Domain.Name = Info.Name; Domain.Description = Info.Description; Domain.Save(); _model.Message = String.Format("New domain \"{0}\" has been created.", Domain.Name); return(Json(new { NotifyType = NotifyType.PageInline, Html = this.RenderPartialView(@"_RequestResultPageInLine", _model) }, JsonRequestBehavior.AllowGet)); } }
public JsonResult AddField(String Name, String FieldType, String Comment, String PossibleValues, String SelectText, String IsMandatory, String ShowInSignup, String SortValues, String IsActive, String AdminUseOnly, String VerticalLayout, int FieldGroupID, bool Encrypted, int[] SelectedDomains, int[] SelectedRoles) { ProfileField profileField = ProfileFields.GetByName(Name); String Message = ""; if (profileField.FieldID > 0 && profileField.FieldName.Trim().ToLower() == Name.Trim().ToLower()) { Message = "The field \"" + Name + "\" already exists."; } if (Name.Trim().ToLower().Length == 0) { Message = "The field name should not be empty."; } if (Message != "") { RequestResultModel _model = new RequestResultModel(); _model.InfoType = RequestResultInfoType.ErrorOrDanger; _model.Message = Message; AuditEvent.AppEventWarning(Profile.Member.Email, Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model), }, JsonRequestBehavior.AllowGet)); } profileField.FieldName = Name; profileField.Comment = Comment; profileField.FieldTypeID = (ProfileFieldTypeEnum)int.Parse(FieldType); profileField.PossibleValues = PossibleValues; profileField.TextSelectValue = SelectText; profileField.IsMandatory = (IsMandatory == "True" ? 1 : 0); profileField.ShowInSignUp = (ShowInSignup == "True" ? 1 : 0); profileField.SortValues = SortValues == "True" ? 1 : 0; profileField.IsActive = IsActive == "True" ? 1 : 0; profileField.AdminUseOnly = AdminUseOnly == "True" ? 1 : 0; profileField.VerticalLayout = VerticalLayout == "True" ? 1 : 0; profileField.FieldGroupID = FieldGroupID; profileField.Encrypted = Encrypted == true ? 1 : 0; profileField.Save(); if (SelectedDomains != null) { List <Domain> _domains = Domains.Get(); foreach (Domain _domain in _domains) { DomainProfileField _domainField = new DomainProfileField(); _domainField.DomainID = _domain.DomainID; _domainField.ProfileFieldID = profileField.FieldID; if (SelectedDomains.Where(t => t == _domain.DomainID).FirstOrDefault() != default(int)) { _domainField.Save(); } } } if (SelectedRoles != null) { List <Role> _roles = Web.Admin.Logic.Collections.Roles.Get(); foreach (Role _role in _roles) { RoleProfileField _roleField = new RoleProfileField(); _roleField.RoleID = _role.RoleID; _roleField.ProfileFieldID = profileField.FieldID; if (SelectedRoles.Where(t => t == _role.RoleID).FirstOrDefault() != default(int)) { _roleField.Save(); } } } AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format("The \"{0}\" field has been added.", Name)); return(Json(new { NotifyType = -1, Html = "", }, JsonRequestBehavior.AllowGet)); }
public ActionResult ImportRoles() { System.Threading.Thread.Sleep(200); CultureInfo provider = CultureInfo.InvariantCulture; List <Role> RoleResult = new List <Role>(); try { for (int i = 0; i < Request.Files.Count; i++) { System.Threading.Thread.Sleep(1); String FileContent = ""; HttpPostedFileBase PostedFile = Request.Files[i]; using (System.IO.Stream input = PostedFile.InputStream) { byte[] buffer = new byte[PostedFile.InputStream.Length]; input.Read(buffer, 0, buffer.Length); FileContent = System.Text.ASCIIEncoding.UTF8.GetString(buffer); } if (FileContent.Length > 0) { string[] Lines = FileContent.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleUploadHasStarted, Lines.Length)); int LineNumber = 1; foreach (String Line in Lines) { if (LineNumber == 1 || Line == null || Line.Trim().Length == 0) { LineNumber++; continue; } List <string> Values = new List <string>(); CsvParser parser = new CsvParser(Line); foreach (string s in parser) { Values.Add(s.Trim()); } if (Values.Count >= 4) { Role Role = Web.Admin.Logic.Collections.Roles.GetBy(Values[0]); if (Role.RoleID > 0) { Role.UIMessage = "Role already exists."; Role.UILineNumber = LineNumber; Role.UIMessageType = Logic.UIMessageType.Warning; AuditEvent.AppEventWarning(Profile.Member.Email, String.Format(AuditEvent.RoleUploadMemberExists, Role.Name)); } else { Role.Name = Values[0]; Role.Settings = Values[1]; if (Values[3].Trim().Length == 0) { Role.BackColor = "aaaaaa"; } else { Role.BackColor = Values[2]; } if (Values[3].Trim().Length == 0) { Role.ForeColor = "000000"; } else { Role.ForeColor = Values[3]; } if (BuiltInRoleMember.ContainsRole(Role.Name)) { Role.IsBuiltIn = true; } else { Role.IsBuiltIn = false; } try { Role.Created = DateTime.ParseExact(Values[4], "dd.MM.yyyy HH:mm:ss", provider); } catch { } try { Role.Modified = DateTime.ParseExact(Values[5], "dd.MM.yyyy HH:mm:ss", provider); } catch { } Role.Save(); Role.UIMessage = "Role has been added."; Role.UIMessageType = Logic.UIMessageType.Success; Role.UILineNumber = LineNumber; AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleUploadedItemAdded, Role.Name)); } RoleResult.Add(Role); } else if (Values.Count > 0) { Role Role = new Role(); Role.UIMessage = "Wrong line format. Number of columns: " + Values.Count.ToString(); Role.UIMessageType = Logic.UIMessageType.ErrorOrDanger; Role.UILineNumber = LineNumber; AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleUploadWrongLineFormat, LineNumber, Values.Count)); RoleResult.Add(Role); } LineNumber++; } } } System.Threading.Thread.Sleep(1000); RoleListModel Model = new RoleListModel(); Model.Roles = RoleResult; return(Json(new { NotifyType = NotifyType.Dialog, Html = this.RenderPartialView(@"_ImportRolesResult", Model) }, "text/html", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { RequestResultModel _model = new RequestResultModel(); _model.Title = "Warning"; _model.Message = String.Format("Something went wrong: {0}", HttpUtility.HtmlEncode(ex.Message)); _model.InfoType = RequestResultInfoType.ErrorOrDanger; _model.HideInSeconds = 0; _model.Height = 250; AuditEvent.AppEventError(Profile.Member.Email, _model.Message, AuditEvent.GetSessionDetails(ex.StackTrace)); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialog", _model) }, "text/html", JsonRequestBehavior.AllowGet)); } }
public JsonResult SaveRole(RoleInfo Info) { RequestResultModel _model = new RequestResultModel(); if (Info.Name == null || Info.Name.Trim().Length == 0) { _model = new RequestResultModel(); _model.Title = "Warning"; _model.Message = "Name is empty. Please, enter role name."; _model.InfoType = RequestResultInfoType.ErrorOrDanger; AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } if (!AppSession.IsColor(Info.Color)) { _model = new RequestResultModel(); _model.Title = "Warning"; _model.Message = "Wrong color value or format, please check."; _model.InfoType = RequestResultInfoType.ErrorOrDanger; AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } if (Info.RoleID > 0) { Role role = Web.Admin.Logic.Collections.Roles.GetBy(Info.RoleID); Role roleExists = Web.Admin.Logic.Collections.Roles.GetBy(Info.Name); // The role has been deleted. if (role.RoleID <= 0) { _model.Title = "Warning"; _model.Message = String.Format("Role '{0}' doesn't exist. Please, refresh role list and try again.", roleExists.Name); AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } // The role already esists. if (roleExists.RoleID > 0 && Info.RoleID != roleExists.RoleID) { _model.Title = "Warning"; _model.Message = String.Format("Role '{0}' already exists. Please, change role name and try again.", roleExists.Name); AuditEvent.AppEventWarning(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } if (!role.IsBuiltIn) { role.Name = Info.Name; role.IsBuiltIn = false; } else { role.IsBuiltIn = true; } role.Settings = Info.Settings; role.BackColor = Info.Color != null?Info.Color.Replace("#", "") : "FFFFFF"; role.ForeColor = Role.ContrastColor(role.BackColor.Replace("#", "")); role.Save(); _model = new RequestResultModel(); _model.Message = String.Format("Role \"{0}\"has been updated.", role.Name); _model.HideInSeconds = 4000; AuditEvent.AppEventSuccess(Profile.Member.Email, _model.Message); return(Json(new { NotifyType = NotifyType.PageInline, Html = this.RenderPartialView(@"_RequestResultPageInLine", _model) }, JsonRequestBehavior.AllowGet)); } else { Role roleExists = Web.Admin.Logic.Collections.Roles.GetBy(Info.Name); // The role already esists. if (roleExists.RoleID > 0) { _model.Title = "Warning"; _model.Message = String.Format("Role '{0}' already exists. Please, change role name and try again.", roleExists.Name); return(Json(new { NotifyType = NotifyType.DialogInline, Html = this.RenderPartialView(@"_RequestResultDialogInLine", _model) }, JsonRequestBehavior.AllowGet)); } Role Role = new Role(); Role.Name = Info.Name; Role.Settings = Info.Settings; Role.BackColor = Info.Color != null?Info.Color.Replace("#", "") : "FFFFFF"; Role.ForeColor = Role.ContrastColor(Role.BackColor.Replace("#", "")); Role.IsBuiltIn = false; Role.Save(); _model.Message = String.Format("New role \"{0}\" has been created.", Role.Name); return(Json(new { NotifyType = NotifyType.PageInline, Html = this.RenderPartialView(@"_RequestResultPageInLine", _model) }, JsonRequestBehavior.AllowGet)); } }