Beispiel #1
0
        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"));
        }
Beispiel #3
0
        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));
            }
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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));
            }
        }
Beispiel #7
0
        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));
            }
        }