示例#1
0
        public IHttpActionResult SaveMembers(UIAccounts groupAccounts)
        {
            string        mRetVal       = "false";
            Logger        mLog          = Logger.Instance();
            MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditGroups", true)), AccountUtility.CurrentProfile());

            if (!mSecurityInfo.MayEdit)
            {
                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            if (HttpContext.Current.Items["EditId"] == null || HttpContext.Current.Items["EditId"].ToString().ToLowerInvariant() != groupAccounts.SeqId.ToString().ToLowerInvariant())
            {
                Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            MAccountProfile     accountProfile      = AccountUtility.CurrentProfile();
            MClientChoicesState mClientChoicesState = ClientChoicesUtility.GetClientChoicesState(accountProfile.Account);
            MGroupRoles         mProfile            = new MGroupRoles();

            mProfile.SecurityEntityId = SecurityEntityUtility.CurrentProfile().Id;
            mProfile.GroupSeqId       = groupAccounts.SeqId;
            mProfile.Roles            = String.Join(",", groupAccounts.Accounts);
            mProfile.AddedUpdatedBy   = accountProfile.Id;
            GroupUtility.UpdateGroupRoles(mProfile);
            return(Ok(mRetVal));
        }
示例#2
0
        protected void Page_Init(object sender, EventArgs e)
        {
            string mAction = GWWebHelper.GetQueryValue(Request, "action");

            if (!String.IsNullOrEmpty(mAction))
            {
                m_SecurityInfo = new MSecurityInfo(FunctionUtility.CurrentProfile(), AccountUtility.CurrentProfile());
            }
        }
示例#3
0
 /// <summary>
 /// Page_s the init.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
 protected void Page_Init(Object sender, EventArgs e)
 {
     m_SecurityInfo   = new MSecurityInfo(FunctionUtility.CurrentProfile(), AccountUtility.CurrentProfile());
     m_ShowDeleteLink = m_SecurityInfo.MayDelete;
     if (!m_SecurityInfo.MayView)
     {
         this.searchResults.Columns.RemoveAt(0);
     }
 }
示例#4
0
        public static string Decrypt(string textValue)
        {
            string        mRetVal       = "Not Authorized";
            MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_Encryption_Helper", true)), AccountUtility.CurrentProfile());

            if (mSecurityInfo.MayView)
            {
                mRetVal = CryptoUtility.Decrypt(textValue.Trim(), SecurityEntityUtility.CurrentProfile().EncryptionType, ConfigSettings.EncryptionSaltExpression);
            }
            return(mRetVal);
        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string mAction = GWWebHelper.GetQueryValue(Request, "action");

            if (!String.IsNullOrEmpty(mAction))
            {
                MFunctionProfile mFunctionProfile = FunctionUtility.GetProfile(mAction);
                MSecurityInfo    mSecurityInfo    = new MSecurityInfo(mFunctionProfile, AccountUtility.CurrentProfile());
                SearchControl.ShowAddLink = mSecurityInfo.MayAdd;
            }
        }
示例#6
0
        public IHttpActionResult Delete([FromUri] int functionSeqID)
        {
            if (functionSeqID <= 0)
            {
                throw new ArgumentNullException("functionSeqID", " must be a positive number!");
            }
            string mRetVal = "False";
            Logger mLog    = Logger.Instance();

            if (HttpContext.Current.Items["EditId"] != null)
            {
                int mEditId = int.Parse(HttpContext.Current.Items["EditId"].ToString());
                if (mEditId == functionSeqID)
                {
                    MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditFunction", true)), AccountUtility.CurrentProfile());
                    if (mSecurityInfo != null)
                    {
                        if (mSecurityInfo.MayDelete)
                        {
                            try
                            {
                                FunctionUtility.Delete(functionSeqID);
                                mRetVal = "True";
                            }
                            catch (Exception ex)
                            {
                                mLog.Error(ex);
                                throw;
                            }
                        }
                        else
                        {
                            Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to delete");
                            mLog.Error(mError);
                            return(this.InternalServerError(mError));
                        }
                    }
                    else
                    {
                        Exception mError = new Exception("Security Info is not in context nothing has been saved!!!!");
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                }
                else
                {
                    Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                    mLog.Error(mError);
                    return(this.InternalServerError(mError));
                }
            }
            return(Ok(mRetVal));
        }
示例#7
0
        /// <summary>
        /// Page_s the init.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void Page_Init(Object sender, EventArgs e)
        {
            string mAction = GWWebHelper.GetQueryValue(Request, "action");

            if (!String.IsNullOrEmpty(mAction))
            {
                MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(mAction), AccountUtility.CurrentProfile());
                if (!mSecurityInfo.MayDelete)
                {
                    this.searchResults.Columns.RemoveAt(1);
                }
            }
        }
示例#8
0
        public IHttpActionResult Save(MUIRoleProfile profile)
        {
            if (profile == null)
            {
                throw new ArgumentNullException("uiProfile", "uiProfile cannot be a null reference (Nothing in Visual Basic)!");
            }
            string        mRetVal        = "false";
            MRoleProfile  mProfileToSave = new MRoleProfile();
            MSecurityInfo mSecurityInfo  = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditRoles", true)), AccountUtility.CurrentProfile());
            Logger        mLog           = Logger.Instance();

            if (HttpContext.Current.Items["EditId"] != null)
            {
                if (profile.Id == -1)
                {
                    if (!mSecurityInfo.MayAdd)
                    {
                        Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                    mProfileToSave.AddedBy   = AccountUtility.CurrentProfile().Id;
                    mProfileToSave.AddedDate = DateTime.Now;
                }
                else
                {
                    if (!mSecurityInfo.MayAdd)
                    {
                        Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to edit");
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                    if (profile.IsSystem)
                    {
                        mProfileToSave.IsSystem = true;
                    }
                    if (profile.IsSystemOnly)
                    {
                        mProfileToSave.IsSystemOnly = true;
                    }
                    mProfileToSave = RoleUtility.GetProfile(profile.Id);

                    mProfileToSave.UpdatedBy   = AccountUtility.CurrentProfile().Id;
                    mProfileToSave.UpdatedDate = DateTime.Now;
                }
            }
            mProfileToSave = populateProfile(profile);
            RoleUtility.Save(mProfileToSave);
            return(Ok(mRetVal));
        }
示例#9
0
        protected void Page_Init(Object sender, EventArgs e)
        {
            string mAction = "Search_Functions";

            if (!String.IsNullOrEmpty(mAction))
            {
                MFunctionProfile mFunctionProfile = FunctionUtility.GetProfile(mAction);
                m_SecurityInfo = new MSecurityInfo(mFunctionProfile, AccountUtility.CurrentProfile());
                if (!m_SecurityInfo.MayEdit)
                {
                    searchResults.Columns.RemoveAt(0);
                }
                m_ShowDeleteLink = m_SecurityInfo.MayDelete;
            }
        }
示例#10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MRoleProfile  myProfile           = new MRoleProfile();
            MSecurityInfo accountSecurityInfo = new MSecurityInfo(FunctionUtility.CurrentProfile(), AccountUtility.CurrentProfile());

            txtEditID.Text = Request.QueryString[GWWebHelper.RoleDataKeyField].ToString();
            //HttpContext.Current.Session.Remove(AppConstants.ROLE_DATA_KEY_FIELD);
            myProfile.Id = int.Parse(txtEditID.Text);
            HttpContext.Current.Session.Add("EditId", myProfile.Id);
            myProfile    = RoleUtility.GetProfile(myProfile.Id);
            litRole.Text = myProfile.Name;
            myProfile.SecurityEntityId = int.Parse(ClientChoicesState[MClientChoices.SecurityEntityId].ToString());
            ctlMembers.DataSource      = RoleUtility.GetAccountsNotInRole(myProfile).ToArray(Type.GetType("System.String"));
            ctlMembers.SelectedItems   = (string[])RoleUtility.GetAccountsInRole(myProfile).ToArray(Type.GetType("System.String"));
            ctlMembers.DataBind();
        }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SearchControl.ShowAddLink = false;
            MDirectoryProfile mDirectoryProfile = DirectoryUtility.GetProfile(FunctionUtility.CurrentProfile().Id);
            String            mLinks            = FileUtility.GetDirectoryLinks("/", mDirectoryProfile.FunctionSeqId);

            directorySelector.InnerHtml = mLinks;
            MFunctionProfile mFunctionProfile = FunctionUtility.CurrentProfile();
            MAccountProfile  mAccountProfile  = AccountUtility.CurrentProfile();
            MSecurityInfo    mSI = new MSecurityInfo(mFunctionProfile, mAccountProfile);

            UploadControl.Visible       = mSI.MayAdd;
            tdNewDirectory.Visible      = mSI.MayAdd;
            SearchControl.ShowDeleteAll = mSI.MayDelete;
            SearchControl.ShowSelect    = mSI.MayDelete;
        }
示例#12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            String           mAction          = ClientChoicesState[MClientChoices.Action];
            MFunctionProfile mFunctionProfile = FunctionUtility.GetProfile(mAction);
            MAccountProfile  mAccountProfile  = AccountUtility.CurrentProfile();
            MSecurityInfo    mSecurityInfo    = new MSecurityInfo(mFunctionProfile, mAccountProfile);

            if (mSecurityInfo.MayView)
            {
                String mScript = "<script type='text/javascript' language='javascript'>window.location.hash = '?Action=" + mAction + "'</script>";
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", mScript);
            }
            else
            {
                Response.Write("Your favorite is not available.  Please ensure that you have chosen the correct " + ConfigSettings.SecurityEntityTranslation);
            }
        }
示例#13
0
        public IHttpActionResult DeleteNameValuePairDetail(UINVPDetailProfile uiProfile)
        {
            string          mRetVal          = false.ToString();
            String          mAction          = GWWebHelper.GetQueryValue(HttpContext.Current.Request, "Action");
            int             mEditId          = int.Parse(HttpContext.Current.Items["EditId"].ToString());
            MAccountProfile mUpdatingAccount = AccountUtility.CurrentProfile();
            MSecurityInfo   mSecurityInfo    = new MSecurityInfo(FunctionUtility.GetProfile(mAction), mUpdatingAccount);

            Logger mLog = Logger.Instance();

            if (mEditId != uiProfile.NVP_SEQ_DET_ID)
            {
                Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            if (!mSecurityInfo.MayDelete)
            {
                Exception mError = new Exception("The account (" + mUpdatingAccount.Account + ") being used does not have the correct permissions to delete");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            try
            {
                MNameValuePairDetail mProfile = new MNameValuePairDetail();
                mProfile.NameValuePairSeqId = uiProfile.NVP_SEQ_ID;
                mProfile.Id          = uiProfile.NVP_SEQ_DET_ID;
                mProfile.UpdatedBy   = mUpdatingAccount.Id;
                mProfile.UpdatedDate = DateTime.Now;
                mProfile.SortOrder   = uiProfile.SortOrder;
                mProfile.Text        = uiProfile.Text;
                mProfile.Value       = uiProfile.Value;
                mProfile.Status      = uiProfile.Status;
                NameValuePairUtility.DeleteDetail(mProfile);
            }
            catch (Exception ex)
            {
                mLog.Error(ex);
                throw;
            }
            return(this.Ok(mRetVal));
        }
示例#14
0
        public IHttpActionResult Delete([FromUri] int groupSeqId)
        {
            string        mRetVal       = "false";
            MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditGroups", true)), AccountUtility.CurrentProfile());

            if (!mSecurityInfo.MayDelete)
            {
                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to delete");
                Logger    mLog   = Logger.Instance();
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            else
            {
                if (HttpContext.Current.Items["EditId"] != null)
                {
                    int mEditId = int.Parse(HttpContext.Current.Items["EditId"].ToString());
                    if (mEditId == groupSeqId)
                    {
                        MGroupProfile mProfile = GroupUtility.GetProfile(groupSeqId);
                        GroupUtility.Delete(mProfile);
                    }
                    else
                    {
                        Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                        Logger    mLog   = Logger.Instance();
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                }
                else
                {
                    Exception mError = new Exception("The identifier unknown and nothing has been saved!!!!");
                    Logger    mLog   = Logger.Instance();
                    mLog.Error(mError);
                    return(this.InternalServerError(mError));
                }
            }

            return(Ok(mRetVal));
        }
示例#15
0
        private void populatePage()
        {
            populateGeneral();
            populateRoles();
            populateGroups();
            if (String.IsNullOrEmpty(hdnCanSaveStatus.Value.ToString()))
            {
                hdnCanSaveStatus.Value = true.ToString();
            }

            MSecurityInfo mGroupTabSecurity = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_View_Account_Group_Tab", true)), AccountUtility.CurrentProfile());
            MSecurityInfo mRoleTabSecurity  = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_View_Account_Role_Tab", true)), AccountUtility.CurrentProfile());

            if (String.IsNullOrEmpty(hdnCanSaveRoles.Value.ToString()))
            {
                hdnCanSaveRoles.Value = mRoleTabSecurity.MayView.ToString();
                tabsRoles.Visible     = mRoleTabSecurity.MayView;
                rolesTab.Visible      = mRoleTabSecurity.MayView;
            }
            else
            {
                hdnCanSaveRoles.Value = "False";
                tabsRoles.Visible     = false;
                rolesTab.Visible      = false;
            }
            if (String.IsNullOrEmpty(hdnCanSaveGroups.Value.ToString()))
            {
                hdnCanSaveGroups.Value = mGroupTabSecurity.MayView.ToString();
                tabsGroups.Visible     = mGroupTabSecurity.MayView;
                groupsTab.Visible      = mGroupTabSecurity.MayView;
            }
            else
            {
                hdnCanSaveGroups.Value = "False";
                tabsGroups.Visible     = false;
                groupsTab.Visible      = false;
            }
            trSysAdmin.Visible = AccountUtility.CurrentProfile().IsSystemAdmin;
        }
示例#16
0
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            m_SecurityInfo    = new MSecurityInfo(FunctionUtility.CurrentProfile(), AccountUtility.CurrentProfile());
            noResults.Visible = false;
            searchResults.HeaderStyle.ForeColor         = ColorTranslator.FromHtml(ClientChoicesState[MClientChoices.HeaderForeColor]);
            searchResults.HeaderStyle.BackColor         = ColorTranslator.FromHtml(ClientChoicesState[MClientChoices.HeadColor]);
            searchResults.AlternatingRowStyle.BackColor = ColorTranslator.FromHtml(ClientChoicesState[MClientChoices.AlternatingRowBackColor]);
            searchResults.RowStyle.BackColor            = ColorTranslator.FromHtml(ClientChoicesState[MClientChoices.RowBackColor]);
            if (!String.IsNullOrEmpty(GWWebHelper.GetQueryValue(Request, "Columns")))
            {
                MSearchCriteria mSearchCriteria = new MSearchCriteria();
                mSearchCriteria.Columns          = GWWebHelper.GetQueryValue(Request, "Columns");
                mSearchCriteria.OrderByColumn    = Server.UrlDecode(GWWebHelper.GetQueryValue(Request, "OrderByColumn"));
                mSearchCriteria.OrderByDirection = GWWebHelper.GetQueryValue(Request, "OrderByDirection");
                int mTryParse = 0;
                if (int.TryParse(GWWebHelper.GetQueryValue(Request, "PageSize"), out mTryParse))
                {
                    mSearchCriteria.PageSize = int.Parse(GWWebHelper.GetQueryValue(Request, "PageSize"));
                }
                else
                {
                    mSearchCriteria.PageSize = 10;
                }

                if (int.TryParse(GWWebHelper.GetQueryValue(Request, "SelectedPage"), out mTryParse))
                {
                    mSearchCriteria.SelectedPage = int.Parse(GWWebHelper.GetQueryValue(Request, "SelectedPage"));
                }
                else
                {
                    mSearchCriteria.SelectedPage = 1;
                }
                mSearchCriteria.WhereClause = Server.UrlDecode(GWWebHelper.GetQueryValue(Request, "WhereClause"));
                mSearchCriteria.WhereClause = mSearchCriteria.WhereClause.Replace("\"", String.Empty);
                bindData(mSearchCriteria);
            }
        }
示例#17
0
        public IHttpActionResult SaveMembers(UIAccounts roleAccounts)
        {
            string        mRetVal       = "false";
            Logger        mLog          = Logger.Instance();
            MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditRoles", true)), AccountUtility.CurrentProfile());

            if (!mSecurityInfo.MayEdit)
            {
                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            if (HttpContext.Current.Items["EditId"] == null)
            {
                Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            MAccountProfile     accountProfile      = AccountUtility.CurrentProfile();
            MClientChoicesState mClientChoicesState = ClientChoicesUtility.GetClientChoicesState(accountProfile.Account);
            bool success = RoleUtility.UpdateAllAccountsForRole(roleAccounts.SeqId, int.Parse(mClientChoicesState[MClientChoices.SecurityEntityId]), roleAccounts.Accounts, accountProfile.Id);

            return(Ok(mRetVal));
        }
示例#18
0
        /// <summary>
        /// Ons the state of the acquire request.
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
        private void onAcquireRequestState(object sender, EventArgs e)
        {
            Logger mLog         = Logger.Instance();
            string mAccountName = AccountUtility.HttpContextUserName();

            mLog.Debug("Started");
            mLog.Debug("CurrentExecutionFilePath " + HttpContext.Current.Request.CurrentExecutionFilePath);
            mLog.Debug("HttpContextUserName: "******"ANONYMOUS")
            {
                string mMessage = "Could not find account '" + mAccountName + "'";
                mLog.Info(mMessage);
                if (ConfigSettings.AutoCreateAccount)
                {
                    mMessage = "Creating new account for '" + mAccountName + "'";
                    mLog.Info(mMessage);
                    AccountUtility.AutoCreateAccount();
                }
            }
            if (mAccountName.ToUpper(CultureInfo.InvariantCulture) != "ANONYMOUS" & (mAccountProfile.LastLogOn.ToShortDateString() != DateTime.Now.ToShortDateString()))
            {
                mAccountProfile.LastLogOn = DateTime.Now;
                AccountUtility.Save(mAccountProfile, false, false);
            }
            if (HttpContext.Current.Session == null)
            {
                mLog.Debug("No Session!");
                mLog.Debug("Ended");
                return;
            }
            if (!processRequest())
            {
                mLog.Debug("Request not for processing!");
                mLog.Debug("Ended");
                return;
            }
            if ((HttpContext.Current.Session["EditId"] != null))
            {
                HttpContext.Current.Items["EditId"] = HttpContext.Current.Session["EditId"];
            }
            MClientChoicesState mClientChoicesState = ClientChoicesUtility.GetClientChoicesState(mAccountName);

            HttpContext.Current.Items[MClientChoices.SessionName] = mClientChoicesState;
            string mAction = GWWebHelper.GetQueryValue(HttpContext.Current.Request, "Action");

            if (string.IsNullOrEmpty(mAction))
            {
                mLog.Debug("No Action!");
                mLog.Debug("Ended");
                return;
            }
            MFunctionProfile mFunctionProfile = FunctionUtility.CurrentProfile();

            if (mFunctionProfile == null)
            {
                mFunctionProfile = FunctionUtility.GetProfile(mAction);
            }
            if (!mFunctionProfile.Source.ToUpper(CultureInfo.InvariantCulture).Contains("MENUS") && !(mAction.ToUpper(CultureInfo.InvariantCulture) == "LOGOFF" | mAction.ToUpper(CultureInfo.InvariantCulture) == "LOGON" | mAction.ToUpper(CultureInfo.InvariantCulture) == "CHANGEPASSWORD"))
            {
                FunctionUtility.SetCurrentProfile(mFunctionProfile);
                dynamic mSecurityInfo = new MSecurityInfo(mFunctionProfile, mAccountProfile);
                HttpContext.Current.Items["SecurityInfo"] = mSecurityInfo;
                switch (mAccountProfile.Status)
                {
                case (int)SystemStatus.ChangePassword:
                    mException = new WebSupportException("Your password needs to be changed before any other action can be performed.");
                    GWWebHelper.ExceptionError = mException;
                    mFunctionProfile           = FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_ChangePassword", true));
                    string mChangePasswordPage = GWWebHelper.RootSite + ConfigSettings.AppName + mFunctionProfile.Source;
                    HttpContext.Current.Response.Redirect(mChangePasswordPage + "?Action=" + mFunctionProfile.Action);
                    break;

                case (int)SystemStatus.SetAccountDetails:
                    if (HttpContext.Current.Request.Path.ToUpper(CultureInfo.InvariantCulture).IndexOf("/API/", StringComparison.OrdinalIgnoreCase) == -1)
                    {
                        mFunctionProfile = FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditAccount", true));
                        if (mAction.ToUpper(CultureInfo.InvariantCulture) != mFunctionProfile.Action.ToUpper(CultureInfo.InvariantCulture))
                        {
                            mException = new WebSupportException("Your account details need to be set.");
                            GWWebHelper.ExceptionError = mException;
                            string mEditAccountPage = GWWebHelper.RootSite + ConfigSettings.AppName + mFunctionProfile.Source;
                            HttpContext.Current.Response.Redirect(mEditAccountPage + "?Action=" + mFunctionProfile.Action);
                        }
                    }
                    break;

                default:
                    string mPage = string.Empty;
                    if (!mSecurityInfo.MayView)
                    {
                        if (mAccountProfile.Account.ToUpper(CultureInfo.InvariantCulture) == "ANONYMOUS")
                        {
                            mException = new WebSupportException("Your session has timed out.<br/>Please sign in.");
                            GWWebHelper.ExceptionError = mException;
                            mFunctionProfile           = FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_Logon", true));
                            mPage = GWWebHelper.RootSite + ConfigSettings.AppName + mFunctionProfile.Source;
                            HttpContext.Current.Response.Redirect(mPage + "?Action=" + mFunctionProfile.Action);
                        }
                        mFunctionProfile = FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_AccessDenied", true));
                        mLog.Warn("Access was denied to Account: " + mAccountProfile.Account + " for Action: " + mFunctionProfile.Action);
                        mPage = GWWebHelper.RootSite + ConfigSettings.AppName + mFunctionProfile.Source;
                        HttpContext.Current.Response.Redirect(mPage + "?Action=" + mFunctionProfile.Action);
                    }
                    break;
                }
            }
            else
            {
                mLog.Debug("Menu data or Logoff/Logon or ChangePassword requested");
            }
            //processOverridePage(mFunctionProfile);
        }
示例#19
0
        public IHttpActionResult SaveNameValuePair(UINVPProfile uiProfile)
        {
            string         mRetVal  = false.ToString();
            MNameValuePair mProfile = new MNameValuePair();
            String         mAction  = GWWebHelper.GetQueryValue(HttpContext.Current.Request, "Action");
            int            mEditId  = int.Parse(HttpContext.Current.Items["EditId"].ToString());
            Logger         mLog     = Logger.Instance();

            if (mEditId != uiProfile.NVP_SEQ_ID)
            {
                Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }

            MAccountProfile        mUpdatingAccount       = AccountUtility.CurrentProfile();
            MSecurityEntityProfile mSecurityEntityProfile = SecurityEntityUtility.CurrentProfile();
            MSecurityInfo          mSecurityInfo          = new MSecurityInfo(FunctionUtility.GetProfile(mAction), mUpdatingAccount);
            String mGroups        = String.Join(",", uiProfile.Groups);
            String mRoles         = String.Join(",", uiProfile.Roles);
            String mCommaSepRoles = mUpdatingAccount.GetCommaSeparatedAssignedRoles;

            if (uiProfile.NVP_SEQ_ID != -1)
            {
                if (!mSecurityInfo.MayAdd)
                {
                    Exception mError = new Exception("The account (" + mUpdatingAccount.Account + ") being used does not have the correct permissions to add");
                    mLog.Error(mError);
                    return(this.InternalServerError(mError));
                }
            }
            else
            {
                if (!mSecurityInfo.MayAdd)
                {
                    Exception mError = new Exception("The account (" + mUpdatingAccount.Account + ") being used does not have the correct permissions to edit");
                    mLog.Error(mError);
                    return(this.InternalServerError(mError));
                }
            }
            if (uiProfile.NVP_SEQ_ID != -1)
            {
                mProfile = NameValuePairUtility.GetNameValuePair(uiProfile.NVP_SEQ_ID);
            }
            else
            {
                mProfile.AddedBy   = mUpdatingAccount.Id;
                mProfile.AddedDate = DateTime.Today;
            }

            mProfile.UpdatedBy   = mUpdatingAccount.Id;
            mProfile.UpdatedDate = DateTime.Today;
            mProfile.StaticName  = uiProfile.STATIC_NAME;
            mProfile.SchemaName  = uiProfile.SchemaName;
            mProfile.Display     = uiProfile.Display;
            mProfile.Description = uiProfile.Description;
            mProfile.Status      = uiProfile.Status;
            int mID         = NameValuePairUtility.Save(mProfile);
            int mSecurityId = mSecurityEntityProfile.Id;

            NameValuePairUtility.UpdateRoles(mID, mSecurityId, mRoles, mProfile);
            NameValuePairUtility.UpdateGroups(mID, mSecurityId, mGroups, mProfile);
            return(this.Ok(mRetVal));
        }
示例#20
0
 /// <summary>
 /// Page_s the init.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
 protected void Page_Init(Object sender, EventArgs e)
 {
     m_SecurityInfo = new MSecurityInfo(FunctionUtility.CurrentProfile(), AccountUtility.CurrentProfile());
 }
示例#21
0
        public IHttpActionResult Save(UIFunctionProfile uiProfile)
        {
            if (uiProfile == null)
            {
                throw new ArgumentNullException("uiProfile", "uiProfile cannot be a null reference (Nothing in Visual Basic)!");
            }
            string        mRetVal       = "false";
            MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditFunction", true)), AccountUtility.CurrentProfile());
            Logger        mLog          = Logger.Instance();

            if (HttpContext.Current.Items["EditId"] != null)
            {
                int mEditId = int.Parse(HttpContext.Current.Items["EditId"].ToString());
                if (mEditId == uiProfile.Id)
                {
                    MAccountProfile   mAccountProfile  = AccountUtility.CurrentProfile();
                    MFunctionProfile  profile          = new MFunctionProfile();
                    MDirectoryProfile directoryProfile = new MDirectoryProfile();
                    if (uiProfile.Id != -1)
                    {
                        if (!mSecurityInfo.MayEdit)
                        {
                            Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to edit");
                            mLog.Error(mError);
                            return(this.InternalServerError(mError));
                        }
                        profile             = FunctionUtility.GetProfile(uiProfile.Id);
                        profile.UpdatedBy   = mAccountProfile.Id;
                        profile.UpdatedDate = DateTime.Now;
                    }
                    else
                    {
                        if (!mSecurityInfo.MayAdd)
                        {
                            Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                            mLog.Error(mError);
                            return(this.InternalServerError(mError));
                        }
                        profile.AddedBy   = mAccountProfile.Id;
                        profile.AddedDate = DateTime.Now;
                    }
                    string viewCommaRoles   = String.Join(",", uiProfile.RolesAndGroups.ViewRoles);
                    string addCommaRoles    = String.Join(",", uiProfile.RolesAndGroups.AddRoles);
                    string editCommaRoles   = String.Join(",", uiProfile.RolesAndGroups.EditRoles);
                    string deleteCommaRoles = String.Join(",", uiProfile.RolesAndGroups.DeleteRoles);

                    string viewCommaGroups   = String.Join(",", uiProfile.RolesAndGroups.ViewGroups);
                    string addCommaGroups    = String.Join(",", uiProfile.RolesAndGroups.AddGroups);
                    string editCommaGroups   = String.Join(",", uiProfile.RolesAndGroups.EditGroups);
                    string deleteCommaGroups = String.Join(",", uiProfile.RolesAndGroups.DeleteGroups);

                    bool saveGroups = false;
                    bool saveRoles  = false;

                    if (profile.GetCommaSeparatedAssignedRoles(PermissionType.View) != viewCommaRoles)
                    {
                        profile.SetAssignedRoles(viewCommaRoles, PermissionType.View);
                        saveRoles = true;
                    }

                    if (profile.GetCommaSeparatedAssignedRoles(PermissionType.Add) != addCommaRoles)
                    {
                        profile.SetAssignedRoles(addCommaRoles, PermissionType.Add);
                        saveRoles = true;
                    }

                    if (profile.GetCommaSeparatedAssignedRoles(PermissionType.Edit) != editCommaRoles)
                    {
                        profile.SetAssignedRoles(editCommaRoles, PermissionType.Edit);
                        saveRoles = true;
                    }

                    if (profile.GetCommaSeparatedAssignedRoles(PermissionType.Delete) != deleteCommaRoles)
                    {
                        profile.SetAssignedRoles(deleteCommaRoles, PermissionType.Delete);
                        saveRoles = true;
                    }

                    if (profile.GetCommaSeparatedGroups(PermissionType.View) != viewCommaGroups)
                    {
                        profile.SetGroups(viewCommaGroups, PermissionType.View);
                        saveGroups = true;
                    }
                    if (profile.GetCommaSeparatedGroups(PermissionType.Add) != addCommaGroups)
                    {
                        profile.SetGroups(addCommaGroups, PermissionType.Add);
                        saveGroups = true;
                    }
                    if (profile.GetCommaSeparatedGroups(PermissionType.Edit) != editCommaGroups)
                    {
                        profile.SetGroups(editCommaGroups, PermissionType.Edit);
                        saveGroups = true;
                    }
                    if (profile.GetCommaSeparatedGroups(PermissionType.Delete) != deleteCommaGroups)
                    {
                        profile.SetGroups(deleteCommaGroups, PermissionType.Delete);
                        saveGroups = true;
                    }
                    profile.Action = uiProfile.Action;
                    profile.EnableNotifications = uiProfile.EnableNotifications;
                    profile.EnableViewState     = uiProfile.EnableViewState;
                    profile.FunctionTypeSeqId   = uiProfile.FunctionTypeSeqID;
                    profile.Id                  = uiProfile.Id;
                    profile.IsNavigable         = uiProfile.IsNav;
                    profile.LinkBehavior        = uiProfile.LinkBehavior;
                    profile.MetaKeywords        = uiProfile.MetaKeyWords;
                    profile.Name                = uiProfile.Name;
                    profile.NavigationTypeSeqId = uiProfile.NavigationTypeSeqId;
                    profile.Notes               = uiProfile.Notes;
                    profile.NoUI                = uiProfile.NoUI;
                    profile.ParentId            = uiProfile.ParentID;
                    profile.Source              = uiProfile.Source;
                    profile.Description         = uiProfile.Description;
                    profile.RedirectOnTimeout   = uiProfile.RedirectOnTimeout;
                    FunctionUtility.Save(profile, saveGroups, saveRoles);
                    profile          = FunctionUtility.GetProfile(uiProfile.Action);
                    directoryProfile = DirectoryUtility.GetProfile(profile.Id);
                    if (!String.IsNullOrEmpty(uiProfile.DirectoryData.Directory))
                    {
                        if (directoryProfile == null)
                        {
                            directoryProfile = new MDirectoryProfile();
                        }
                        directoryProfile.FunctionSeqId       = profile.Id;
                        directoryProfile.Directory           = uiProfile.DirectoryData.Directory;
                        directoryProfile.Impersonate         = uiProfile.DirectoryData.Impersonate;
                        directoryProfile.ImpersonateAccount  = uiProfile.DirectoryData.ImpersonateAccount;
                        directoryProfile.ImpersonatePassword = uiProfile.DirectoryData.ImpersonatePassword;
                        directoryProfile.Name      = uiProfile.DirectoryData.Directory;
                        directoryProfile.UpdatedBy = mAccountProfile.Id;
                        DirectoryUtility.Save(directoryProfile);
                    }
                    else
                    {
                        if (directoryProfile != null)
                        {
                            directoryProfile.Directory = "";
                            directoryProfile.Name      = "";
                            DirectoryUtility.Save(directoryProfile);
                        }
                    }
                    AccountUtility.RemoveInMemoryInformation(true);
                    mRetVal = "true";
                }
                else
                {
                    Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                    mLog.Error(mError);
                    return(this.InternalServerError(mError));
                }
            }
            else
            {
                Exception mError = new Exception("Identifier could not be determined, nothing has been saved!!!!");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            return(Ok(mRetVal));
        }
示例#22
0
        public IHttpActionResult Save(UIMessageProfile profile)
        {
            if (profile == null)
            {
                throw new ArgumentNullException("profile", "uiProfile cannot be a null reference (Nothing in Visual Basic)!");
            }
            string          mRetVal = "False";
            MAccountProfile mCurrentAccountProfile = AccountUtility.CurrentProfile();
            Logger          mLog           = Logger.Instance();
            MMessageProfile mProfileToSave = populateProfile(profile, mCurrentAccountProfile);

            if (HttpContext.Current.Items["EditId"] != null)
            {
                int mEditId = int.Parse(HttpContext.Current.Items["EditId"].ToString());
                if (mEditId == profile.Id)
                {
                    MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditMessages", true)), AccountUtility.CurrentProfile());
                    if (mSecurityInfo != null)
                    {
                        if (mEditId != 1)
                        {
                            if (mSecurityInfo.MayEdit)
                            {
                                MessageUtility.Save(mProfileToSave);
                                mLog.Debug("Saved message " + profile.Name + " by " + mCurrentAccountProfile.Account);
                                mRetVal = "true";
                            }
                            else
                            {
                                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to edit");
                                mLog.Error(mError);
                                return(this.InternalServerError(mError));
                            }
                        }
                        else
                        {
                            if (mSecurityInfo.MayAdd)
                            {
                                MessageUtility.Save(mProfileToSave);
                                mLog.Debug("Added message " + profile.Name + " by " + mCurrentAccountProfile.Account);
                                mRetVal = "true";
                            }
                            else
                            {
                                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                                mLog.Error(mError);
                                return(this.InternalServerError(mError));
                            }
                        }
                    }
                    else
                    {
                        Exception mError = new Exception("Security Info is not in context nothing has been saved!!!!");
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                }
                else
                {
                    Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                    mLog.Error(mError);
                    return(this.InternalServerError(mError));
                }
            }
            return(Ok(mRetVal));
        }
示例#23
0
        public IHttpActionResult Save(UIAccountProfile uiProfile)
        {
            if (uiProfile == null)
            {
                throw new ArgumentNullException("uiProfile", "uiProfile cannot be a null reference (Nothing in Visual Basic)!");
            }
            string          mRetVal                = "false";
            bool            mSaveGroups            = false;
            bool            mSaveRoles             = false;
            MAccountProfile mCurrentAccountProfile = AccountUtility.CurrentProfile();
            MAccountProfile mAccountProfileToSave  = new MAccountProfile();
            Logger          mLog = Logger.Instance();

            if (HttpContext.Current.Request.QueryString["Action"].ToString().ToUpper(CultureInfo.InvariantCulture).IndexOf("REGISTER") > -1)
            {
                MAccountProfile mExistingAccount = AccountUtility.GetProfile(uiProfile.Account);
                if (mExistingAccount == null)
                {
                    mAccountProfileToSave    = populateAccountProfile(uiProfile, mAccountProfileToSave);
                    mAccountProfileToSave.Id = uiProfile.Id;
                    string mGroups = ConfigSettings.RegistrationGroups;
                    string mRoles  = ConfigSettings.RegistrationRoles;
                    if (!string.IsNullOrEmpty(mGroups))
                    {
                        mSaveGroups = true;
                    }
                    if (!string.IsNullOrEmpty(mRoles))
                    {
                        mSaveRoles = true;
                    }
                    mAccountProfileToSave.AddedBy   = mCurrentAccountProfile.Id;
                    mAccountProfileToSave.AddedDate = DateTime.Now;
                    mAccountProfileToSave.SetGroups(mGroups);
                    mAccountProfileToSave.SetRoles(mRoles);
                    mAccountProfileToSave.PasswordLastSet = DateTime.Now;
                    mAccountProfileToSave.LastLogOn       = DateTime.Now;
                    mAccountProfileToSave.Password        = CryptoUtility.Encrypt(ConfigSettings.RegistrationPassword, ConfigSettings.EncryptionType);
                    mAccountProfileToSave.Status          = int.Parse(ConfigSettings.RegistrationStatusId);
                    if (HttpContext.Current.Request.QueryString["Action"].ToString().ToUpper(CultureInfo.InvariantCulture).IndexOf("REGISTER") > -1)
                    {
                        mAccountProfileToSave.Status = (int)SystemStatus.Active;
                    }
                    MClientChoicesState    mClientChoiceState     = ClientChoicesUtility.GetClientChoicesState(ConfigSettings.RegistrationAccountChoicesAccount, true);
                    MSecurityEntityProfile mSecurityEntityProfile = SecurityEntityUtility.GetProfile(ConfigSettings.RegistrationSecurityEntityId);
                    string mCurrentSecurityEntityId = mClientChoiceState[MClientChoices.SecurityEntityId];

                    mClientChoiceState.IsDirty = false;
                    mClientChoiceState[MClientChoices.AccountName]        = mAccountProfileToSave.Account;
                    mClientChoiceState[MClientChoices.SecurityEntityId]   = mSecurityEntityProfile.Id.ToString(CultureInfo.InvariantCulture);
                    mClientChoiceState[MClientChoices.SecurityEntityName] = mSecurityEntityProfile.Name;
                    try
                    {
                        AccountUtility.Save(mAccountProfileToSave, mSaveRoles, mSaveGroups, mSecurityEntityProfile);
                        ClientChoicesUtility.Save(mClientChoiceState, false);
                        AccountUtility.SetPrincipal(mAccountProfileToSave);
                        mRetVal = "Your account has been created";
                    }
                    catch (Exception ex)
                    {
                        mLog.Error(ex);
                    }
                }
                else
                {
                    mRetVal = "The account '" + uiProfile.Account + "' already exists please choose a different account/email";
                }
            }
            else
            {
                if ((HttpContext.Current.Items["EditId"] != null) | mCurrentAccountProfile.Status == (int)SystemStatus.SetAccountDetails)
                {
                    int mEditId = 0;
                    if ((HttpContext.Current.Items["EditId"] != null))
                    {
                        mEditId = int.Parse(HttpContext.Current.Items["EditId"].ToString());
                    }
                    else
                    {
                        mEditId = mCurrentAccountProfile.Id;
                    }
                    if (mEditId == uiProfile.Id)
                    {
                        MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.CurrentProfile(), AccountUtility.CurrentProfile());
                        if ((mSecurityInfo != null))
                        {
                            if (mEditId != -1)
                            {
                                if (mCurrentAccountProfile.Id != uiProfile.Id)
                                {
                                    mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditOtherAccount", true)), mCurrentAccountProfile);
                                }
                                if (mSecurityInfo.MayEdit | mCurrentAccountProfile.Status == (int)SystemStatus.SetAccountDetails)
                                {
                                    MSecurityInfo mGroupTabSecurity = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_View_Account_Group_Tab", true)), mCurrentAccountProfile);
                                    MSecurityInfo mRoleTabSecurity  = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_View_Account_Role_Tab", true)), mCurrentAccountProfile);
                                    mAccountProfileToSave    = AccountUtility.GetProfile(mEditId);
                                    mAccountProfileToSave    = populateAccountProfile(uiProfile, mAccountProfileToSave);
                                    mAccountProfileToSave.Id = uiProfile.Id;
                                    string mGroups = string.Join(",", uiProfile.AccountGroups.Groups);
                                    string mRoles  = string.Join(",", uiProfile.AccountRoles.Roles);
                                    if (mGroupTabSecurity.MayView & FunctionUtility.CurrentProfile().Action.ToLowerInvariant() == ConfigSettings.GetAppSettingValue("Actions_EditOtherAccount", true).ToLower(CultureInfo.InvariantCulture))
                                    {
                                        if (mAccountProfileToSave.GetCommaSeparatedAssignedGroups != mGroups)
                                        {
                                            mSaveGroups = true;
                                            mAccountProfileToSave.SetGroups(mGroups);
                                        }
                                    }
                                    if (mRoleTabSecurity.MayView & FunctionUtility.CurrentProfile().Action.ToLowerInvariant() == ConfigSettings.GetAppSettingValue("Actions_EditOtherAccount", true).ToLower(CultureInfo.InvariantCulture))
                                    {
                                        if (mAccountProfileToSave.GetCommaSeparatedAssignedRoles != mRoles)
                                        {
                                            mSaveRoles = true;
                                            mAccountProfileToSave.SetRoles(mRoles);
                                        }
                                    }
                                    mAccountProfileToSave.AddedBy   = mCurrentAccountProfile.Id;
                                    mAccountProfileToSave.AddedDate = DateTime.Now;
                                    AccountUtility.Save(mAccountProfileToSave, mSaveRoles, mSaveGroups);
                                    mLog.Debug("Saved account " + mAccountProfileToSave.Account + " by " + mCurrentAccountProfile.Account);
                                    mRetVal = "true";
                                }
                                else
                                {
                                    Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to edit");
                                    mLog.Error(mError);
                                    return(this.InternalServerError(mError));
                                }
                            }
                            else
                            {
                                if (mSecurityInfo.MayAdd)
                                {
                                    mSaveGroups                     = true;
                                    mSaveRoles                      = true;
                                    mAccountProfileToSave           = populateAccountProfile(uiProfile, mAccountProfileToSave);
                                    mAccountProfileToSave.Id        = -1;
                                    mAccountProfileToSave.AddedBy   = mCurrentAccountProfile.Id;
                                    mAccountProfileToSave.AddedDate = DateTime.Now;

                                    mAccountProfileToSave.AddedBy         = mCurrentAccountProfile.Id;
                                    mAccountProfileToSave.AddedDate       = DateTime.Now;
                                    mAccountProfileToSave.PasswordLastSet = DateTime.Now;
                                    mAccountProfileToSave.LastLogOn       = DateTime.Now;
                                    mAccountProfileToSave.Password        = CryptoUtility.Encrypt(ConfigSettings.RegistrationPassword, ConfigSettings.EncryptionType);
                                    mAccountProfileToSave.Status          = ConfigSettings.AutoCreateAccountStatusId;
                                    string mGroups = string.Join(",", uiProfile.AccountGroups.Groups);
                                    string mRoles  = string.Join(",", uiProfile.AccountRoles.Roles);
                                    mAccountProfileToSave.SetGroups(mGroups);
                                    mAccountProfileToSave.SetRoles(mRoles);
                                    try
                                    {
                                        AccountUtility.Save(mAccountProfileToSave, mSaveRoles, mSaveGroups);
                                    }
                                    catch (Exception ex)
                                    {
                                        mLog.Error(ex);
                                    }
                                    mLog.Debug("Added account " + mAccountProfileToSave.Account + " by " + mCurrentAccountProfile.Account);
                                    mRetVal = "true";
                                }
                                else
                                {
                                    Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                                    mLog.Error(mError);
                                    return(this.InternalServerError(mError));
                                }
                            }
                        }
                        else
                        {
                            Exception mError = new Exception("Security Info is not in context nothing has been saved!!!!");
                            mLog.Error(mError);
                            return(this.InternalServerError(mError));
                        }
                    }
                    else
                    {
                        Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                }
            }

            return(Ok(mRetVal));
        }
示例#24
0
        public IHttpActionResult Save(MUISecurityEntityProfile uiProfile)
        {
            if (uiProfile == null)
            {
                new ArgumentNullException("uiProfile", "uiProfile cannot be a null reference (Nothing in Visual Basic)!");
            }
            bool          mRetVal       = false;
            Logger        mLog          = Logger.Instance();
            var           session       = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current);
            MSecurityInfo mSecurityInfo = new MSecurityInfo(FunctionUtility.GetProfile(ConfigSettings.GetAppSettingValue("Actions_EditSecurityEntity", true)), AccountUtility.CurrentProfile());

            if (mSecurityInfo != null)
            {
                if (HttpContext.Current.Session["EditId"] != null)
                {
                    int mEditId = int.Parse(HttpContext.Current.Items["EditId"].ToString());
                    if (mEditId == int.Parse(uiProfile.Id))
                    {
                        if (mEditId != -1)
                        {
                            if (mSecurityInfo.MayEdit)
                            {
                                MSecurityEntityProfile mSecurityEntityProfile = SecurityEntityUtility.GetProfile(mEditId);
                                mSecurityEntityProfile    = populateSecurityEntity(uiProfile);
                                mSecurityEntityProfile.Id = int.Parse(uiProfile.Id);
                                SecurityEntityUtility.Save(mSecurityEntityProfile);
                                mRetVal = true;
                            }
                            else
                            {
                                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                                mLog.Error(mError);
                                return(this.InternalServerError(mError));
                            }
                        }
                        else
                        {
                            if (mSecurityInfo.MayAdd)
                            {
                                MSecurityEntityProfile mSecurityEntityProfile = populateSecurityEntity(uiProfile);
                                mSecurityEntityProfile.Id          = -1;
                                mSecurityEntityProfile.AddedBy     = AccountUtility.CurrentProfile().Id;
                                mSecurityEntityProfile.AddedDate   = DateTime.Now;
                                mSecurityEntityProfile.UpdatedBy   = mSecurityEntityProfile.AddedBy;
                                mSecurityEntityProfile.UpdatedDate = mSecurityEntityProfile.AddedDate;
                                SecurityEntityUtility.Save(mSecurityEntityProfile);
                                mRetVal = true;
                            }
                            else
                            {
                                Exception mError = new Exception("The account (" + AccountUtility.CurrentProfile().Account + ") being used does not have the correct permissions to add");
                                mLog.Error(mError);
                                return(this.InternalServerError(mError));
                            }
                        }
                    }
                    else
                    {
                        Exception mError = new Exception("Identifier you have last looked at does not match the one passed in nothing has been saved!!!!");
                        mLog.Error(mError);
                        return(this.InternalServerError(mError));
                    }
                }
            }
            else
            {
                Exception mError = new Exception("Security Info is not in context nothing has been saved!!!!");
                mLog.Error(mError);
                return(this.InternalServerError(mError));
            }
            return(this.Ok(mRetVal));
        }