void IDFunction.SaveGroups(PermissionType permission) { checkValid(); String mCommaSeporatedString = m_Profile.GetCommaSeparatedGroups(permission); string mStoreProcedure = "ZGWSecurity.Set_Function_Groups"; SqlParameter[] mParameters = { new SqlParameter("@P_Function_SeqID", m_Profile.Id), new SqlParameter("@P_Security_Entity_SeqID", m_SecurityEntitySeqId), new SqlParameter("@P_Groups", mCommaSeporatedString), new SqlParameter("@P_Permissions_NVP_Detail_SeqID", permission), new SqlParameter("@P_Added_Updated_By", GetAddedUpdatedBy(m_Profile)) }; base.ExecuteNonQuery(mStoreProcedure, mParameters); }
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)); }