Error
While we make a huge effort to not break things during updates, when something can't be avoided we will document it here.
All RockObsolete methods and properties v12 and earlier are being removed. You should have already been getting warnings in VisualStudio to fix those issues in your code/plugins.
The /api/FinancialTransactions/ endpoints which were marked as obsolete in v12.4 have been removed in v17.0. The code referencing these endpoints need to use the /api/FinancialGivingStatement/ endpoints instead
/api/FinancialTransactions/
/api/FinancialGivingStatement/
The /api/FinancialGivingStatement/{personId} and /api/GivingStatement/{personId} endpoints no longer accept the parameters templateDefinedValueId and hideRefundedTransactions. Also, from v17.0, financialStatementTemplateId is a mandatory parameter for these endpoints.
/api/FinancialGivingStatement/{personId}
/api/GivingStatement/{personId}
templateDefinedValueId
hideRefundedTransactions
financialStatementTemplateId
For a more complete list please visit this page.
Since 2022 is nearly over, we've decided it's time to have us all on VS2022.
As mentioned in this blog post, DotLiquid support has ended. When Rock starts up, Fluid will automatically be selected as the Lava engine. If any of your plugins still reference any old DotLiquid code, ensure it is removed. The DotLiquid.dll will be removed from Rock in v18. If you have questions about converting from DotLiquid to Fluid, please see the Upgrading Custom Lava Components for v13 article.
DotLiquid.dll
Rock now uses a new logging system that makes use of the Microsoft.Extensions.Logging library. Legacy methods are still available for now and will be removed in a future version of Rock. If you use the logging system in your plugins there will be a new UI to enable logging, which will require some custom JSON to be configured to enable the legacy logging domains. See the Developer 303 guide for details on how to configure logging to display messages from your plugins.
If you run into odd 'build' issues, you may need to run an npm i on your Rock.JavaScript.Obsidian and Rock.JavaScript.Obsidian.Blocks projects.
npm i
If you are using AppVeyor and are having node build issues. Be aware that AppVeyor has recently updated their default node version so you may need to add an environment variable that specifies a version of node to run on. For example: Key: nodejs_version Values: 22.6.0
nodejs_version
22.6.0
In this version of Rock we are performing a small denormalization on these three tables to improve performance of Attribute Values in Rock. They will receive the following new properties that are required and do not have default values:
If you do any direct inserts to these three tables you will have to put conditional logic in your queries if your code needs to support Rock versions before v17 and v17 and later concurrently. You can see an example of this here.
When loading attributes on the Rock.Model.ConnectionRequest or Rock.Model.RegistrationRegistrant entities, and the entity has not yet been saved to the database, it is necessary to manually set the ConnectionTypeId and RegistrationTemplateId properties before calling the LoadAttributes() method.
Rock.Model.ConnectionRequest
Rock.Model.RegistrationRegistrant
ConnectionTypeId
RegistrationTemplateId
LoadAttributes()
The visibility of the ScheduleCoordinatorNotificationTypes property in Rock.Web.Cache.GroupTypeCache has been modified from public to private.
ScheduleCoordinatorNotificationTypes
Rock.Web.Cache.GroupTypeCache
public
private
The properties ParameterKey and ParameterCount in the Lava Block Rock.Lava.Blocks.AdaptiveMessageBlock have been updated to ParameterMessageKey and ParameterAdaptationPerMessage.
ParameterKey
ParameterCount
Rock.Lava.Blocks.AdaptiveMessageBlock
ParameterMessageKey
ParameterAdaptationPerMessage
The NCOA block and job have been replaced with a new block found under Tools > Data Integrity.
The PostV12.4 Update Helper Job has been removed as the earliest available version doesn't require this to run.
The Rock.Web.HttpModules.Observability has moved to Rock.Web.HttpModules.RockGateway. Any code that was referencing the old class should reference the new class name.
Rock.Web.HttpModules.Observability
Rock.Web.HttpModules.RockGateway
The Rock.StatementGenerator has been removed and should no longer be used.
The Rock.ViewModels.Reporting.FieldFilterRuleBag and Rock.ViewModels.Reporting.FieldFilterGroupBag have been modified to use an enum instead of an int as their data type.
Rock.ViewModels.Reporting.FieldFilterRuleBag
Rock.ViewModels.Reporting.FieldFilterGroupBag
enum
int
Removed classes and methods that were marked as Obsolete in v12 and older: See full list here.
AgeBracket
Rock.Enums.dll
MobilePageType
Rock.Mobile.AdditionalPageSettings
Rock.Enums.Cms
The GetBlockInitializationAsync() method of the Rock.Blocks.IRockBlockType interface has been updated to work asynchronously. Any code that implements this interface should be updated to run asynchronously.
GetBlockInitializationAsync()
Rock.Blocks.IRockBlockType
The static BuildMobilePackage method was marked obsolete in v12 and removed from the Rock.Mobile.MobileHelper class in v17.0. the static BuildMobilePackageAsync method may be as an alternative.
BuildMobilePackage
Rock.Mobile.MobileHelper
BuildMobilePackageAsync
The override of the Dictionary<string, string> GetPrivateConfigurationValues( Dictionary<string, string> publicConfigurationValues) method was removed from the Rock.Field.Types.SecurityRoleFieldType class.
Dictionary<string, string> GetPrivateConfigurationValues( Dictionary<string, string> publicConfigurationValues)
Rock.Field.Types.SecurityRoleFieldType
The AdditionalSettingsExtensions class was moved from the Rock.Utility.ExtensionMethods namespace to Rock. Any third-party code using the class will need to be recompiled to use the updated namespace.
Rock.Utility.ExtensionMethods
Rock
The method public static object FilterNotFollowed( Context context, object dataObject ) in Rock.Lava.RockLiquid.RockFilters.cs has been renamed to public static object FilterUnfollowed( Context context, object dataObject ). Similarly, the method public static object FilterNotFollowed( ILavaRenderContext context, object dataObject ) in Rock.Lava.Filters.LavaFilters.cs has been renamed to public static object FilterUnfollowed( ILavaRenderContext context, object dataObject ). Any code referencing these two method would need to be recompiled.
public static object FilterNotFollowed( Context context, object dataObject )
Rock.Lava.RockLiquid.RockFilters.cs
public static object FilterUnfollowed( Context context, object dataObject )
public static object FilterNotFollowed( ILavaRenderContext context, object dataObject )
Rock.Lava.Filters.LavaFilters.cs
public static object FilterUnfollowed( ILavaRenderContext context, object dataObject )
The enum type ZeroToTwelve in the enum Rock.Enums.Crm.AgeBracket has been replaced by two other enum types namely ZeroToFive and SixToTwelve. The code referencing the old enum type needs to be changed.
ZeroToTwelve
Rock.Enums.Crm.AgeBracket
ZeroToFive
SixToTwelve
In the class Rock.Rest/v2/ControlsController.cs , the method public IHttpActionResult DefinedValuePickerGetAttributes( DefinedValuePickerGetAttributesOptionsBag options ) has been renamed to public IHttpActionResult DefinedValueEditorGetAttributes( DefinedValueEditorGetAttributesOptionsBag options ). Similarly, the method public IHttpActionResult DefinedValuePickerSaveNewValue( DefinedValuePickerSaveNewValueOptionsBag options ) in the same class has been renamed to public IHttpActionResult DefinedValueEditorSaveNewValue( DefinedValueEditorSaveNewValueOptionsBag options ). Any code referencing these two method would need to be recompiled.
Rock.Rest/v2/ControlsController.cs
public IHttpActionResult DefinedValuePickerGetAttributes( DefinedValuePickerGetAttributesOptionsBag options )
public IHttpActionResult DefinedValueEditorGetAttributes( DefinedValueEditorGetAttributesOptionsBag options )
public IHttpActionResult DefinedValuePickerSaveNewValue( DefinedValuePickerSaveNewValueOptionsBag options )
public IHttpActionResult DefinedValueEditorSaveNewValue( DefinedValueEditorSaveNewValueOptionsBag options )
The property GetLegacyGlobalMergeFields in the class Rock.Lava.CommonMergeFieldsOptions which was marked obsolete in v16 has been removed.
GetLegacyGlobalMergeFields
Rock.Lava.CommonMergeFieldsOptions
The enum class LavaSupportLevel in Rock.Lava which was marked obsolete in v16 has been removed.
LavaSupportLevel
Rock.Lava
Similarly, the property LavaSupportLevel in the class Rock.Web.Cache.GlobalAttributesCache has been removed
Rock.Web.Cache.GlobalAttributesCache
The method public static bool CheckSqlServerVersion(int majorVersionNumber) in the class Rock.Update.Helpers.VersionValidationHelper has been removed. The code referencing that method needs to be rewritten to use the new method public static bool CheckSqlServerCompatibilityLevel(int compatibiltyLevel)
public static bool CheckSqlServerVersion(int majorVersionNumber)
Rock.Update.Helpers.VersionValidationHelper
public static bool CheckSqlServerCompatibilityLevel(int compatibiltyLevel)
The public virtual List GetBreadCrumbs( PageReference ) method in the Rock.Web.UI.RockBlock class is no longer called before a block is initialized. Therefore if you were using the method to initialize block data it will no longer work as expected.
public virtual List GetBreadCrumbs( PageReference )
Rock.Web.UI.RockBlock
The type of the property PersonEntrySmsOptInEntryOption in the class Rock.Model.WorkflowActionForm has been changed from Rock.Model.WorkflowActionFormPersonEntryOption to Rock.Model.WorkflowActionFormShowHideOption. The code making use of this property will need to be adjusted to the new type and recompiled.
PersonEntrySmsOptInEntryOption
Rock.Model.WorkflowActionForm
Rock.Model.WorkflowActionFormPersonEntryOption
Rock.Model.WorkflowActionFormShowHideOption
A similar change has been made with the PersonEntrySmsOptInEntryOption property in the class Rock.Web.Cache.WorkflowActionFormCache. The property was of type Rock.Model.WorkflowActionFormPersonEntryOption but now it has been changed to Rock.Model.WorkflowActionFormShowHideOption. The code making use of this property will need to be adjusted to the new type and recompiled.
Rock.Web.Cache.WorkflowActionFormCache
The type of the property SmsOptIn has been changed from to Rock.Model.WorkflowActionFormShowHideOption. The code making use of this property will need to be adjusted to the new type and recompiled.
SmsOptIn
CheckedSecurityActions property in Rock.Web.Cache.BlockTypeCache which was marked obsolete in v11.0 has been removed. Similarly, the methods public void SetSecurityActions(RockBlock blockControl) and public void SetSecurityActions(Type blockType) in the same class have also been removed as they too were marked obsolete in v11.0.
CheckedSecurityActions
Rock.Web.Cache.BlockTypeCache
public void SetSecurityActions(RockBlock blockControl)
public void SetSecurityActions(Type blockType)
The method public method Rock.Model.ExceptionLogService.TruncateLog has been made static. The code using this method would need to be recompiled.
public method Rock.Model.ExceptionLogService.TruncateLog
static
The ValueAsPerson property has been removed from Rock.Model.AttributeValue.cs. The code using the property needs to be changed to use the ValueAsPersonId property instead.
ValueAsPerson
Rock.Model.AttributeValue.cs
ValueAsPersonId
Rock has stopped supporting legacy Lava. With that the following classes have been removed
public class Rock.Lava.EntityAttribute
public class Rock.Lava.LegacyLavaSyntaxDetectedException
public class Rock.Lava.LegacyLavaUpdater
Service
class
IEntity
Entity<T>
Rock.Lava.Shared
DotLiquid
If you have been using RockBlock GetUserPreference(...), GetUserPreferences(...), or SetUserPreference(...) (as mentioned in the 101 Launchpad guide) you should convert over to the new Person Preferences system. These were formerly stored as AttributeValue but are now in the new PersonPreference table. You should migrate any stored values when you update your code (if they were not migrated during the v16.0 update).
The property UsagesRemaining has been renamed to RegistrationUsagesRemaining in the class Rock.Model.RegistrationTemplateDiscountWithUsage. The code referencing this property must be modified to use the new name.
UsagesRemaining
RegistrationUsagesRemaining
Rock.Model.RegistrationTemplateDiscountWithUsage
The method public static string GetValue( string key, string defaultValue ) in the Rock.Web.SystemSettings class, which was originally added in v15.0, has been removed in v15.2. Nothing other than core should have been using that method, but any code using the old method needs to be changed to use the public static string GetValue( string key ) method.
public static string GetValue( string key, string defaultValue )
Rock.Web.SystemSettings
public static string GetValue( string key )
The class RockMobileBlockType has been marked obsolete in v16.0. The code using the class need to be changed to use the RockBlockType
RockMobileBlockType
RockBlockType
The method public IEntity GetEntity(Guid entityTypeGuid, Guid entityGuid) has been removed from the class Rock.Model.EntityTypeService. The code using this method must be re-written to use the public IEntity GetEntity( int entityTypeId, int entityId ) method in the same class.
public IEntity GetEntity(Guid entityTypeGuid, Guid entityGuid)
Rock.Model.EntityTypeService
public IEntity GetEntity( int entityTypeId, int entityId )
The setters of the following properties in the Rock.Model.Person has been set to private:
Rock.Model.Person
BirthDay
BirthMonth
BirthYear
The REST APIs
showAsIndividual
Group Location Historical Schedule
History
Message
LavaRenderException
LavaParseException
GetUserMessage
GetDiagnosticMessage
The following Enums have been moved to the Rock.Enum namespace. Code using these will need to be recompiled.
ScheduledAttendanceItemMatchesPreference
ScheduledAttendanceItemStatus
SchedulerResourceGroupMemberFilterType
The following Enums have been moved from Rock.Enums.Blocks.Groups to Rock.Enums.Blocks.Group. Code using these will need to be updated and recompiled.
Rock.Enums.Blocks.Groups
Rock.Enums.Blocks.Group
GroupAttendanceDetailDateSelectionMode
GroupAttendanceDetailLocationSelectionMode
GroupAttendanceDetailScheduleSelectionMode
IHostedGatewayComponent
Please Note: The internal "Registration Detail" where it used to be possible to accept/enter a payment on behalf of the registrant no longer supports the legacy payment gateways. So, you would need to direct people to make payment on their own behalf using the /MyAccount page's "Registration List Lava" block.
The property Rock.Bulk.SampleData.SampleDataManager.CreatorPersonAliasId has been changed from int to int?. Code making use of this property will need to be adjusted for the nullable type and recompiled.
Rock.Bulk.SampleData.SampleDataManager.CreatorPersonAliasId
The enum Rock.Common.Mobile.Enums.CommunicationType.SMS has been renamed to Rock.Common.Mobile.Enums.CommunicationType.Sms. Code making use of this enum will need to be updated and recompiled.
Rock.Common.Mobile.Enums.CommunicationType.SMS
Rock.Common.Mobile.Enums.CommunicationType.Sms
The following static method had is signature changed by adding a new parameter with no default value Rock.Mobile.MobileHelper.GetEmailEditFieldXaml. Code using this method will need to be recompiled.
Rock.Mobile.MobileHelper.GetEmailEditFieldXaml
The following static method had is signature changed by adding a new parameter with no default value Rock.Mobile.MobileHelper.GetTextEditFieldXaml. Code using this method will need to be recompiled.
Rock.Mobile.MobileHelper.GetTextEditFieldXaml
The method Rock.Web.Cache.PersonalizationSegmentCache.GetActiveSegments had its signature changed to remove the boolean includeSegmentsWithNonPersistedDataViews since segments no longer require persisted datasets. Code making use of this method will need to be updated and recompiled.
Rock.Web.Cache.PersonalizationSegmentCache.GetActiveSegments
We have replaced all legacy TransactionEntry block instances on all pages with the newer UtilityPaymentEntry block (NMI/MyWell compatible) and have attempted to preserve any custom block settings you might have configured. If you are still trying to use one of the legacy payment gateways, you will need to manually change back to the legacy TransactionEntry block, otherwise you will see an error when the block loads "Unsupported Gateway This block only supports Gateways that have a hosted payment interface." Also, the new block only supports one payment gateway per instance/configuration.
TransactionEntry
UtilityPaymentEntry
The following methods were marked obsolete in v10 and removed from the Rock.Model.CommunicationResponseService class in v15.0:
Rock.Model.CommunicationResponseService
The enum Rock.Model.PersonAliasType was marked obsolete in v10 and removed in v15.0:
Rock.Model.PersonAliasType
The Enum CommunicationMessageFilter has been moved to the Rock.Enum namespace. Code use this will need to be recompiled.
CommunicationMessageFilter
REST call api/v2/Controls/LocationPickerGetActiveChildren has been changed to api/v2/Controls/LocationItemPickerGetActiveChildren.
The following properties in the POCO class Rock.IpAddress.Location have been made nullable to improve efficiency in situations where the IpRegistry lookup service is not available.
Rock.IpAddress.Location
public double? Longitude
public double? Latitude
The following properties related to RSVP Reminders have been removed since they will not be used in the Group Reminders feature:
Rock.Model.Group.RSVPReminderAdditionalDetails
Rock.Model.GroupLocationScheduleConfig.RSVPReminderAdditionalDetails
Rock.Model.GroupMemberAssignment.LastRSVPReminderSentDateTime
Rock.ViewModels.Entities.GroupBag.RSVPReminderAdditionalDetails
Rock.ViewModels.Entities.GroupMemberAssignmentBag.LastRSVPReminderSentDateTime
The class public property Rock.Transactions.IndexEntityTransaction was marked obsolete in 13.7 but has been moved back into the active code base with some changes. This was done to efficently process search indexing.
Removed classes and methods that were marked as Obsolete in v9.1:
public method Rock.ExtensionMethods.AddPageRoute
public method Rock.ExtensionMethods.BindToDefinedType
public method Rock.ExtensionMethods.ToCacheAttributeList
public class Rock.Financial.ThreeStepGatewayComponent
public method Rock.Model.FeeInfo..ctor
public property Rock.Model.FeeInfo.Option
public method Rock.Model.GroupService.AllowsDuplicateMembers
public method Rock.Model.GroupService.GetAllDescendents
public method Rock.Model.RegistrationTemplateFeeService.GetParsedFeeOptionsWithCostAsNumber
public method Rock.Model.RegistrationTemplateFeeService.GetParsedFeeOptionsWithNameAndValueString
public method Rock.Model.RegistrationTemplateFeeService.GetParsedFeeOptionsWithoutCost
public method Rock.Model.RegistrationTemplateFeeService.MigrateFeeCostValueToFeeItems
public method Rock.Model.Schedule.GetCalenderEvent
public method Rock.Model.ScheduleICalHelper.GetCalenderEvent
public field Rock.SystemGuid.FieldType.AUDIO
public field Rock.SystemGuid.FieldType.VIDEO
public field Rock.SystemGuid.Page.SMS_FROM_VALUES
public class Rock.SystemGuid.SystemSetting
public field Rock.SystemKey.SystemSetting.DO_NOT_DISTURB_ACTIVE
public field Rock.SystemKey.SystemSetting.DO_NOT_DISTURB_END
public field Rock.SystemKey.SystemSetting.DO_NOT_DISTURB_START
public property Rock.Web.Cache.InteractionChannelCache.InteractionComponents
public property Rock.Web.UI.Controls.NumberUpDownGroup.ControlGroup
public property Rock.Web.UI.Controls.PageBreadCrumbs.PreText
public class Rock.Web.UI.Controls.PersonMergeField
public class Rock.Web.UI.Controls.PersonMergeFieldHeaderTemplate
public interface Rock.Rest.IHasCustomRoutes
public method Rock.Rest.Controllers.ContentChannelItemSlugsController.GetUniqueContentSlug
In preperation to upgrade the version of Quartz use by RockJobs the architecture of the Rock Jobs has changed. Current compiled code will not be affected, however if compiling you will get a warning. The old Rock Job architecture will work through v15, but should be updated before v16.
The read-only property QuartzScheduler was removed from the static class Rock.WebStartup.RockApplicationStartupHelper. The QuartzScheduler property is now on Rock.Model.ServiceJobService.
Rock.WebStartup.RockApplicationStartupHelper
Rock.Model.ServiceJobService
The constructor for Rock.Lava.DotLiquid.DotLiquidTemplateProxy now requires a description along with the template.
Rock.Lava.DotLiquid.DotLiquidTemplateProxy
The enum Rock.Model.CommunicationStatus has been moved from Rock.dll to Rock.Enums.dll. Code using this enum will need to be recompiled.
Rock.Model.CommunicationStatus
The following static method had is signature changed by adding a parameter with a default value Rock.Lava.Filters.TemplateFilters.Split. Code using this method will need to be recompiled.
Rock.Lava.Filters.TemplateFilters.Split
The following models will be slightly de-normalized to gain some enhanced performance with some grids. (Those performance enhancements will come in future versions.) Although Rock's PreSave() hooks will ensure the value is set when adding a new item, if you have code that attempts to modify the related property on an existing item, you will need to adjust your code to also take this into account. Also, any code that bypasses the Pre/PostSave operations (SaveChanges( disablePrePostProcessing: true ) or using BulkInsert()) will need to be updated accordingly.
SaveChanges( disablePrePostProcessing: true )
BulkInsert()
ConnectionRequest.ConnectionTypeId
GroupMember.GroupTypeId
RegistrationRegistrant.RegistrationTemplateId
The parent class of the badge component Rock.Badge.Component.Campus has been changed. Previously it inherited from Rock.Badge.HighlightLabelBadge. This has been changed to Rock.Badge.BadgeComponent. This is to remove Web Forms dependency from the core Rock back end code. Plugins using the Campus badge component will need to use the Render() method instead of the GetLabel() method.
Rock.Badge.Component.Campus
Rock.Badge.HighlightLabelBadge
Rock.Badge.BadgeComponent
Render()
GetLabel()
The following libraries were updated for compatibility reasons: RestSharp upgraded from 105.2.3 to 106.12.0 RestSharp.Newtonsoft.Json from 1.0.0 to 1.5.1 If you have a plugin that is using any of these, it will need to be recompiled to use this new version.
The reference between a PersonAlias to a Person has been severed so the PersonAlias.PersonId property is now a nullable int (int?)
PersonAlias.PersonId
int?
Updated Entity Framework to version 6.4.4.
When referencing any DLL directly, you may need to switch the NuGet reference specifically targeting 6.4.4 so that the props file is updated correctly.
The Render() method of the Rock.Badge.BadgeComponent classes has been updated to include IEntity and use TextWriter instead of HtmlTextWriter. This was done to prevent a possible race condition with the Entity and for MS .Net Core compatiblity. The old method still exists in the parent class but is blank so it doesn't do anything. Custom code using Rock's BadgeComponent classes will need to use the new method.
TextWriter
HtmlTextWriter
The method Rock.Lava.RockFilters.Trim(object) has moved from the Rock.dll to Rock.Lava.dll. Additionally an optional parameter string textToRemove was added. Code using this method will need to insure the Rock.Lava.dll is referenced in the project and then be recompiled.
Rock.Lava.RockFilters.Trim(object)
string textToRemove
Methods that returned type Ical.Net.Event have been changed to return the type Ical.Net.CalendarComponents.CalendarEvent to accomadate an upgrade to Ical. Some of these methods are obsolete as of v12.4 and should be updated regardless.
Ical.Net.Event
The Rock.Badge.HighlightLabelBadge is being obsoleted in favor of Rock.Badge.BadgeComponent. This is to remove Web Forms dependency from the core Rock back end code.
The SMTP email delivery for Mandrill and Mailgun has been removed. Mailgun is still available using their HTTP service. The SMTP is still available in Rock but should only be used for development and testing.
Corrected the SystemGuid constants listed below. Code using these will need to be recompiled.
Rock.SystemGuid.EntityType.BENEVOLENCE_TYPE
Rock.SystemGuid.EntityType.CONNECTION_OPPORTUNITY_CONNECTOR_GROUP
Rock.SystemGuid.EntityType.MEDIA_ACCOUNT
Updated workflow attributes to automatically encrypt and decrypt values for the following: Benevolence Request Set Attribute, Group Attribute Set, Group Member Attribute Set, Entity Attribute Set, Lava Run, and SQL Run. Any attribute that uses the EncryptedTextFieldType will also be automatically encrypted and decrypted.
Added .gitignore file to RockWeb\Plugins folder. If you are building plugins from a forked copy of the repository you may need to delete that file in your forked repository.
.gitignore
RockWeb\Plugins
Removed classes and system GUIDs related to post migration jobs that are no longer needed. These should not be used by any third-party code and should not require any action.
The following changes have been made to Rock.Chart:
Rock.Chart.ChartJsCategoryValuesDataPoint
Rock.Chart.ChartJsCategorySeriesDataPoint
Rock.Chart.ChartJsCategoryValuesDataset
Rock.Chart.ChartJsCategorySeriesDataset
Rock.Chart.IChartJsCategoryValuesDataPoint
IChartJsCategorySeriesDataPoint
Rock.Chart.ChartJsTimeSeriesDataFactory.GetJsonArgs.UnitType
The class Rock.Communication.Transport.MailgunSmtp has been removed. All Mailgun accounts need to use HTTP instead of SMTP.
Rock.Communication.Transport.MailgunSmtp
Enum Rock.Web.UI.Controls.AccountTreeViewItem.GetCountsType removed vaue GroupMembers = 2
Rock.Web.UI.Controls.AccountTreeViewItem.GetCountsType
GroupMembers = 2
Rock.Jobs
MigrateAttendanceOccurrenceData
MigrateFamilyAlternateId
PostV100DataMigrationsSundayDate
PostV100DataMigrationsValueAsNumeric
PostV103DataMigrationsSpiritualGifts
PostV110DataMigrationsPopulateRelatedDataViewId
PostV110DataMigrationsResponseCodeIndex
PostV110DataMigrationsUpdateDateKeyValues
PostV74DataMigrations
PostV80DataMigrations
PostV84DataMigrations
PostV90DataMigrations
PostV90DataMigrationsForDISC
PostV90DataMigrationsScheduledTransactionNotesToHistory
Rock.SystemGuid.ServiceJob
DATA_MIGRATIONS_100_ATTRIBUTEVALUE_VALUEASNUMERIC
DATA_MIGRATIONS_100_SUNDAYDATE
DATA_MIGRATIONS_103_SPIRITUAL_GIFTS
DATA_MIGRATIONS_110_COMMUNICATIONRECIPIENT_RESPONSECODE_INDEX
DATA_MIGRATIONS_110_POPULATE_DATE_KEYS
DATA_MIGRATIONS_110_POPULATE_RELATED_DATAVIEW_ID
DATA_MIGRATIONS_74
DATA_MIGRATIONS_80
DATA_MIGRATIONS_84
DATA_MIGRATIONS_90
DATA_MIGRATIONS_90_DISC
DATA_MIGRATIONS_90_SCHEDULEDTRANSACTIONNOTESTOHISTORY
MIGRATE_ATTENDANCE_OCCURRENCE
MIGRATE_COMMUNICATION_MEDIUM_DATA
MIGRATE_FAMILY_CHECKIN_IDS
MIGRATE_HISTORY_SUMMARY_DATA
MIGRATE_INTERACTIONS_DATA
The Render() method of the following Rock.Badge.BadgeComponent classes has been updated to include IEntity and use TextWriter instead of HtmlTextWriter. This was done to prevent a possible race condition with the Entity and for .net core compatiblity. The old method still exists in the parent class but is blank so it doesn't do anything. Custom code using Rock's BadgeComponent classes will need to use the new method.
Rock.Badge.Component.HighlightLabelBadge
Rock.Badge.Component.IconBadge
Rock.Badge.Component.Achievement
Rock.Badge.Component.AlertNote
Rock.Badge.Component.Assessment
Rock.Badge.Component.AttendingDuration
Rock.Badge.Component.DISC
Rock.Badge.Component.FamilyAttendance
Rock.Badge.Component.FamilyWeeksAttendedInDuration
Rock.Badge.Component.GeofencedByGroup
Rock.Badge.Component.Giving
Rock.Badge.Component.GroupTypeAttendance
Rock.Badge.Component.InDataView
Rock.Badge.Component.InGroupOfType
Rock.Badge.Component.InGroupWithPurpose
Rock.Badge.Component.InteractionsInRange
Rock.Badge.Component.LastVisitOnSite
Rock.Badge.Component.Liquid
Rock.Badge.Component.PersonalDevice
Rock.Badge.Component.Steps
Rock.Badge.Component.StreakEngagement
Rock.Badge.Component.TopPersonSignal
The following methods have been changed to return the type Ical.Net.CalendarComponents.CalendarEvent instead of Ical.Net.Event. Some are obsolete as of v12.4 and should be updated regardless.
The following 'Location Services' have been removed in Rock v14. SmartyStreets and Bing should be used instead.
MelissaData
Class Rock.Address.MelissaData and interface Rock.MelissaData.AddressCheck have been removed.
Rock.Address.MelissaData
Rock.MelissaData.AddressCheck
ServiceObjects
Classes Rock.Address.ServiceObjects and Rock.ServiceObjects.GeoCoder have been removed.
Rock.Address.ServiceObjects
Rock.ServiceObjects.GeoCoder
Rock.Model.EntityTypeService.Get(string name, bool createIfNotFound) has been renamed to Rock.Model.EntityTypeService.GetByName(string name, bool createIfNotFound)
Rock.Model.EntityTypeService.Get(string name, bool createIfNotFound)
Rock.Model.EntityTypeService.GetByName(string name, bool createIfNotFound)
The namespace Rock.ViewModel has been renamed to Rock.ViewModels. Any code referencing this namespace will need to be recompiled.
Rock.ViewModel
Rock.ViewModels
The signature for method Rock.Lava.RockFilters.AppendFollowing changed by adding a parameter with a default value. Code that uses this method will need to be recompiled.
Rock.Lava.RockFilters.AppendFollowing
public static object AppendFollowing(Context context, object dataObject)
public static object AppendFollowing(Context context, object dataObject, string purposeKey)
The signature for method Rock.Lava.RockFilters.Format changed by renaming an existing parameter and adding an additional one. Code that uses this method will need to be recompiled.
public static bool IsFollowed(Context context, object input, object personObject)
public static bool IsFollowed(Context context, object input, object parameter1, object parameter2)
The constructor for Rock.Model.CampusTopicService now uses the type RockContext instead of DbContext. This matches the implementation of other Rock classes.
Rock.Model.CampusTopicService
RockContext
DbContext
The enum Rock.Model.Gender has moved from the Rock project to the Rock.Enums project, the namespace remains the same. Code using this enum will need to reference the new dll and be recompiled.
Rock.Model.Gender
The method public method Rock.Model.SignatureDocument.CalculateSignatureVerificationHash has been removed from the SignatureDocument model. It is now a static method in SignatureDocumentService.
public string CalculateSignatureVerificationHash()
public static string CalculateSignatureVerificationHash( SignatureDocument document )
The constant Rock.SystemGuid.ConnectionActivityType.FUTURE_FOLLOWUP_COMPLETE has been renamed to Rock.SystemGuid.ConnectionActivityType.FOLLOWUP_DATE_REACHED to better reflect its meaning. Code that references this field will need to be recompiled.
Rock.SystemGuid.ConnectionActivityType.FUTURE_FOLLOWUP_COMPLETE
Rock.SystemGuid.ConnectionActivityType.FOLLOWUP_DATE_REACHED
The type of property Rock.Blocks.Types.Mobile.Connection.ConnectionRequestDetail.RequestViewModel.Attributes has been changed from List to List.
Rock.Blocks.Types.Mobile.Connection.ConnectionRequestDetail.RequestViewModel.Attributes
List
public method Rock.Rest.Jwt.JwtHelper.GetPerson was renamed to Rock.Rest.Jwt.JwtHelper.GetPersonFromJWTPersonSearchKey. This method should only be used by Rock REST calls and so should not effect any third-party code.
Rock.Rest.Jwt.JwtHelper.GetPerson
Rock.Rest.Jwt.JwtHelper.GetPersonFromJWTPersonSearchKey
The following objects were moved from the "Rock" namespace to "Rock.Utility"
CampaignItem
CreateConnectionRequestOptions
FamilyLimits
The public methods below use the class CampaignItem as a parameter. Any third-party code using the class will need to be recompiled to use the updated namespace.
Rock.Utility.CampaignConnectionHelper.GetPendingConnectionCount
Rock.Utility.CampaignConnectionHelper.GetEntitySet
Rock.Utility.CampaignConnectionHelper.GetConnectorCampusIds
Rock.Utility.CampaignConnectionHelper.GetConnectionRequestsWithoutConnectorQuery
Rock.Utility.CampaignConnectionHelper.GetCampaignConfiguration
Rock.Utility.CampaignConnectionHelper.AddOrUpdateCampaignConfiguration
Rock.Utility.CampaignConnectionHelper.AddConnectionRequestsForPerson
The following properties where changed from public to private:
.IsNull() and .IsNotNull() extension methods have been obsoleted.
.IsNull()
.IsNotNull()
Updated web.config to allow C# 7.3 language feature in Rock Blocks.
Usage of the older "CurrencySymbol" global attribute is now deprecated starting with v13 (see v12.4 notes below).
In order to load the experimental Rock.Javascript.Obsidian project in the Rock solution, you will need to add the "Node.js development" Workload to Visual Studio:
All property and methods marked RockObsolete "1.8" and older will be removed from Rock. Those marked RockObsolete "1.9" will cause a compile error.
The interface IRockMobileBlockType now implements IRockClientBlockType. This will force the classes implemeting IRockMobileBlockType to implement the method GetBlockInitialization( RockClientType clientType ). This method should return an object containing the mobile block type's configuration.
IRockMobileBlockType
IRockClientBlockType
GetBlockInitialization( RockClientType clientType )
Now that we have moved a number of extension methods (as well as RockDateTime) out of Rock.dll and into Rock.Common.dll, developers will need to include a project dependency/reference to Rock.Common.dll when you (re-)build plugins for Rock v13 or later.
Rock.dll
Rock.Common.dll
In order to achieve a rather substantial performance improvement, we're making a significant changes to the underlying Lava parser. All existing custom Lava filters will break as a result of these changes. If you've created custom Lava filters, please read the Updating Custom Lava Component instructions on what you need to do to be compatible with Rock v13. Contact the core team to discuss questions you have. Also Note: we are no longer going to accept any custom Lava filter plugins in the RockShop.
Support for Redis clusters is deprecated as of Rock v13. Previous versions of Rock clusters relied on a Redis server. The message bus now replaces the need for the Redis server. We highly recommend moving away from the Redis solution to the new web farm features.
It will no longer be possible to start from an existing database that is older than version 11 using the develop branch. Why: The EF 'migration squish' we've performed assumes your underlying database is either empty, or has everything up to version 11.0 (release-1.11.0) in it.
develop
release-1.11.0
If you do have a v10.x database (for example) that you wish to move to the develop branch, you should switch to the release-1.11.0 branch first (or release-1.12.0) in order to allow Entity Framework to migrate your database to that level.
release-1.12.0
Rock.Model.CommunicationRecipient.PersonAliasId
Rock.Model.SchedulerResource.HasSchedulingConflict
Rock.Model.SchedulerResource.SchedulingConflicts
List<SchedulerResourceScheduled>
Rock.Reporting.DataFilter.Workflow.WorkflowAttributesFilter.workflowTypePicker_SelectItem
Rock.Reporting.DataFilter.Workflow.WorkflowAttributesFilter.workflowTypePicker_ValueChanged
Rock.Lava.RockLiquid.Blocks
Rock.Lava.Blocks.Cache
Rock.Lava.Blocks.CalendarEvents
Rock.Lava.Blocks.EventScheduledInstance
Rock.Lava.Blocks.Execute
Rock.Lava.Blocks.InteractionContentChannelItemWrite
Rock.Lava.Blocks.Javascript
Rock.Lava.Blocks.JsonProperty
Rock.Lava.Blocks.RockEntity
Rock.Lava.Blocks.Search
Rock.Lava.Blocks.Sql
Rock.Lava.Blocks.Stylesheet
Rock.Lava.Blocks.TagList
Rock.Lava.Blocks.WebRequest
Rock.Lava.Blocks.WorkflowActivate
Rock.Utility.RockSerializableDictionary
Moved the sealed class Rock.Jobs.TransactionView into the Rock.Jobs.GivingAutomation class.
Rock.Jobs.TransactionView
Rock.Jobs.GivingAutomation
Rock.Jobs.GivingAutomation.TransactionView
Moved the sealed class Rock.Jobs.AlertView into the Rock.Jobs.GivingAutomation class.
Rock.Jobs.AlertView
Rock.Jobs.GivingAutomation.AlertView
Changed the type of property Rock.Jobs.GivingAutomation.GivingAutomationContext.DataViewPersonQueries to return the person object instead of just the Person ID
Rock.Jobs.GivingAutomation.GivingAutomationContext.DataViewPersonQueries
public Dictionary> DataViewPersonQueries
/Replaced the property Rock.Common.Mobile.DeviceData.VersionString with Rock.Common.Mobile.DeviceData.ApplicationVersion. This was to allow the inclusion of a new property Rock.Common.Mobile.DeviceData.ShellVersion.
Rock.Common.Mobile.DeviceData.VersionString
Rock.Common.Mobile.DeviceData.ApplicationVersion
Rock.Common.Mobile.DeviceData.ShellVersion
Added an additional parameter with a default value to method Rock.Blocks.Types.Mobile.Groups.GroupAttendanceEntry.SaveAttendance. Code making use of this method will need to be recompiled.
Rock.Blocks.Types.Mobile.Groups.GroupAttendanceEntry.SaveAttendance
public BlockActionResult SaveAttendance(Guid groupGuid, DateTimeOffset date, List attendees, bool didNotMeet)
public BlockActionResult SaveAttendance(Guid groupGuid, DateTimeOffset date, List attendees, bool didNotMeet, string notes)
The class public class Rock.Blocks.Types.Mobile.Groups.AddToGroup has been renamed to Rock.Blocks.Types.Mobile.Groups.GroupRegistration
public class Rock.Blocks.Types.Mobile.Groups.AddToGroup
Rock.Blocks.Types.Mobile.Groups.GroupRegistration
Added additional parameters with defaults to method Rock.Blocks.Types.Mobile.Cms.WorkflowEntry.GetNextForm. Code making use of this method will need to be recompiled.
Rock.Blocks.Types.Mobile.Cms.WorkflowEntry.GetNextForm
public WorkflowForm GetNextForm( Guid? workflowGuid = null, string formAction = null, List formFields = null, WorkflowFormPersonEntryValues personEntryValues = null )
public WorkflowForm GetNextForm( Guid? workflowGuid = null, string formAction = null, List formFields = null, WorkflowFormPersonEntryValues personEntryValues = null, List supportedFeatures = null )
Added additional parameters with defaults to method Rock.Blocks.Types.Mobile.Cms.Register.RegisterUser. Code making use of this method will need to be recompiled.
Rock.Blocks.Types.Mobile.Cms.Register.RegisterUser
public object RegisterUser(AccountData account)
public object RegisterUser(AccountData account, bool supportsLogin = False, Nullable<Guid> personalDeviceGuid)
Two of the method Rock.Data.DbContext.SaveChanges signatures have been made virtual for future functionality.
Rock.Data.DbContext.SaveChanges
public virtual int SaveChanges(bool disablePrePostProcessing)
public virtual SaveChangesResult SaveChanges(SaveChangesArgs args)
The service job class Rock.Jobs.GivingAnalytics has been replaced with Rock.Jobs.GivingAutomation. A migration will create the new job and remove any jobs using the old class. The following changes have been made to support this:
Rock.Jobs.GivingAnalytics
Rock.SystemKey.SystemSetting.GIVING_ANALYTICS_CONFIGURATION
Rock.SystemKey.SystemSetting.GIVING_AUTOMATION_CONFIGURATION
Rock.Utility.Settings.GivingAnalytics
Rock.Utility.Settings.GivingAutomationSettings
Rock.Utility.Settings.Alerting
Rock.Utility.Settings.Giving.GivingAlertingSettings
Rock.Utility.Settings.GiverBin
Rock.Utility.Settings.Giving.GiverBin
Rock.Utility.Settings.Giving.GivingAutomationJobSettings
Rock.Utility.Settings.GivingAnalyticsSetting
Rock.Utility.Settings.Giving.GivingAutomationSettings
The Enum Rock.Model.PaymentRedirectVendor has been removed.
Rock.Model.PaymentRedirectVendor
The property Rock.Model.RegistrationInstance.PaymentRedirectData has been removed.
Rock.Model.RegistrationInstance.PaymentRedirectData
The method signature for Rock.Model.RegistrationService.GetRegistrationContext has been updated:
Rock.Model.RegistrationService.GetRegistrationContext
GetRegistrationContext(int registrationInstanceId, Person currentPerson, RegistrationEntryBlockArgs args, out String& errorMessage)
GetRegistrationContext(int registrationInstanceId, Nullable registrationGuid, Person currentPerson, string discountCode, out String& errorMessage)
The property Rock.Model.RegistrationTemplate.PaymentRedirectVendor has been removed.
Rock.Model.RegistrationTemplate.PaymentRedirectVendor
In the service class Rock.Model.FinancialTransactionService the following methods have been renamed:
Rock.Model.FinancialTransactionService
Rock.Model.FinancialTransactionService.GetGivingAnalyticsMonthlyAccountGivingHistory
GetGivingAutomationMonthlyAccountGivingHistory
Rock.Model.FinancialTransactionService.GetGivingAnalyticsMonthlyAccountGivingHistoryFromJson
GetGivingAutomationMonthlyAccountGivingHistoryFromJson
Rock.Model.FinancialTransactionService.GetGivingAnalyticsSourceTransactionQuery
GetGivingAutomationSourceTransactionQuery
The following Rock.Model classes had their PreSaveChanges() and/or PostSaveChanges() overrides moved to the SaveHook subclass:
PreSaveChanges()
PostSaveChanges()
Attendance
Moved the Enum ConnectionWorkflowTriggerType from global to namespace Rock.Model.
ConnectionWorkflowTriggerType
The value for Rock.SystemGuid.DefinedValue.CREDITCARD_TYPE_JCB has been corrected to take out a leading space.
Rock.SystemGuid.DefinedValue.CREDITCARD_TYPE_JCB
Changed the visibility of the class Rock.Lava.LavaFilters from Public to Internal.
Rock.Lava.LavaFilters
ConnectionRequest
ConnectionRequestActivity
ConnectionWorkflow
ContentChannel
ContentChannelItem
EventCalendar
Note
NoteAttachment
RegistrationInstance
RegistrationTemplate
Step
Streak
Workflow
WorkflowType
Rock.Lava.LavaFilters.CreateShortLink
public static string CreateShortLink(object input, string token = "", int? siteId, bool overwrite = False, int randomLength = 10)
public static string CreateShortLink(ILavaRenderContext context, object input, string token = "", int? siteId, bool overwrite = False, int randomLength = 10)
public readonly DateTime Rock.Jobs.GivingAnalyticsContext.Now
Added the interface IRockClientBlockType to IRockMobileBlockType which forces the implementation of the method GetBlockInitialization().
GetBlockInitialization()
The following properties have been changed from DateTime to DateTimeOffset:
Rock.Common.Mobile.MobileInteraction.DateTime
Rock.Common.Mobile.MobilePerson.BirthDate
Rock.Common.Mobile.Blocks.Groups.GroupAttendanceEntry.GroupData.Date
Rock.Common.Mobile.Blocks.RegisterAccount.AccountData.BirthDate
The property Rock.Common.Mobile.Blocks.Groups.GroupAttendanceEntry.GroupData.Dates changed from List<DateTime> to List<DateTimeOffset>
The following method signatures have been updated to use DateTimeOffset instead of DateTime:
Rock.Blocks.Types.Mobile.Groups.GroupAttendanceEntry.DidNotMeet
Rock.Blocks.Types.Mobile.Groups.GroupAttendanceEntry.GetGroupData
Rock.Blocks.Types.Mobile.Groups.GroupAttendanceEntry.SaveSingleAttendance
Changed the following fields from static to const:
Rock.SystemGuid.ServiceJob.MIGRATE_COMMUNICATION_MEDIUM_DATA
Rock.SystemGuid.ServiceJob.MIGRATE_INTERACTIONS_DATA
Rock.Jobs.GivingAnalytics.CreateAlertsForTransaction() DateTime in the signature for parameter lastGiftDate is no longer nullable.
Rock.Jobs.GivingAnalytics.CreateAlertsForTransaction()
The class Rock.Lava.WebsiteLavaShortcodeProvider is no longer static.
Rock.Lava.WebsiteLavaShortcodeProvider
There was a small change in Rock.CheckIn.RosterAttendee between Rock 12.3 and 12.4. The following method signatures have been updated to use the RosterAttendeeAttendance object instead of the Attendance object.
Rock.CheckIn.RosterAttendee
RosterAttendeeAttendance
bool AttendanceMeetsRosterStatusFilter(RosterAttendeeAttendance attendance, RosterStatusFilter rosterStatusFilter)
IList GetFromAttendanceList(IList attendanceList, GroupTypeCache selectedCheckinArea)
IList GetFromAttendanceList(IList attendanceList)
Moved the following classes to Namespace Rock.Lava.RockLiquid.Blocks
Moved class Rock.Utility.RockSerializableDictionary to Rock.Lava
public method Rock.CheckIn.CheckinManagerHelper.SetSelectedCheckinAreaGuidToCookie(Nullable checkinAreaGuid) has been renamed to Rock.CheckIn.CheckinManagerHelper.SaveSelectedCheckinAreaGuidToCookie(Nullable checkinAreaGuid)
Rock.CheckIn.CheckinManagerHelper.SetSelectedCheckinAreaGuidToCookie(Nullable checkinAreaGuid)
Rock.CheckIn.CheckinManagerHelper.SaveSelectedCheckinAreaGuidToCookie(Nullable checkinAreaGuid)
Removed v1.8 obsolete public method List Rock.Model.PersonService.InactivatePerson(Person person, DefinedValueCache reason, string reasonNote). The replacement method void Rock.Model.PersonService.InactivatePerson( Person person, DefinedValueCache inactiveReasonDefinedValue, string inactiveReasonNote ) returns void since history changes are handled by the Person model.
List Rock.Model.PersonService.InactivatePerson(Person person, DefinedValueCache reason, string reasonNote)
void Rock.Model.PersonService.InactivatePerson( Person person, DefinedValueCache inactiveReasonDefinedValue, string inactiveReasonNote )
Made the property Rock.Model.CommunicationRecipient.PersonAliasId nullable.
Removed setter from property Rock.Model.SchedulerResource.HasSchedulingConflict. The property's value is now determined by checking the new property Rock.Model.SchedulerResource.SchedulingConflicts for any items. This new property is a List and holds any scheduling conflicts.
Removed method Rock.Reporting.DataFilter.Workflow.WorkflowAttributesFilter.workflowTypePicker_SelectItem. Selection functionality will be performed during the ValueChanged event using Rock.Reporting.DataFilter.Workflow.WorkflowAttributesFilter.workflowTypePicker_ValueChanged instead of the SelectItem event.
PurposeKey
null
string.Empty
FormatAsCurrency
The Report Detail block has a new setting called "Add Administrate Security to Item Creator". When this is set to "Yes" then whoever created the Report will automatically have the security permission to edit and administrate it added. The default value for this setting is "No". The behavior of Rock prior to v12.4 was to automatically grant the Report creator "Administrate" and "Edit" permissions. As of v12.4 this will not happen unless the "Add Administrate Security to Item Creator" block setting is set to "Yes". This release does NOT change the security permissions for any existing Reports.
If you would like to run a script to remove the existing "Administrate" and "Edit" permissions granted to the creaters we have some handy SQL scripts!
This script will show all of the Persons where the Person is assigned "Edit" or "Administrate" permission and that same Person created the Report. It will NOT include permissions other than "Edit" or "Administrate", permissions assigned to a role, Disallow permissions, or permissions assigned to a Person that didn't create the Report. The permissions returned by this script are the permissions that the delete script will remove.
-- Shows the creator permissions granted to Reports. This only for person level authorization and not security groups. DECLARE @reportEntityTypeId int = (SELECT [Id] FROM [EntityType] WHERE [Guid] = 'F1F22D3E-FEFA-4C84-9FFA-9E8ACE60FCE7') SELECT r.[Name] AS ReportName, p.[LastName] AS PersonLastName, p.[FirstName] AS PersonFirstName, a.* FROM [Auth] a JOIN [Report] r on a.[EntityId] = r.[Id] JOIN [PersonAlias] pa on a.[PersonAliasId] = pa.[Id] JOIN [Person] p on pa.[PersonId] = p.[Id] WHERE a.[EntityTypeId] = @reportEntityTypeId AND a.[Action] IN ('Edit', 'Administrate') AND a.[AllowOrDeny] = 'A' AND r.[CreatedByPersonAliasId] = a.PersonAliasId ORDER BY r.[Name], p.[LastName], p.[FirstName]
Here is the DELETE script. It will remove all of the Report security settings for Persons where the Person is assigned "Edit" or "Administrate" permission and that same Person created the Report. It will NOT delete permissions other than "Edit" or "Administrate", permissions assigned to a role, Disallow permissions, or permissions assigned to a Person that didn't create the Report.
After running this script Report edit and administration security access will be dependent on Roles and the Users explicitly assigned the permissions after creating the Report.
-- Removes the creator permissions granted to Reports. This only affects person level authorization and not security groups. DECLARE @reportEntityTypeId int = (SELECT [Id] FROM [EntityType] WHERE [Guid] = 'F1F22D3E-FEFA-4C84-9FFA-9E8ACE60FCE7') DELETE FROM [Auth] WHERE [Id] IN ( SELECT a.[Id] FROM [Auth] a JOIN [Report] r on a.[EntityId] = r.[Id] WHERE a.[EntityTypeId] = @reportEntityTypeId AND a.[Action] IN ('Edit', 'Administrate') AND a.[AllowOrDeny] = 'A' AND r.[CreatedByPersonAliasId] = a.[PersonAliasId])
NOTE: After running the delete script, you will need to clear the cache for the changes to effect the Rock web application.
The Data View Detail block has a new setting called "Add Administrate Security to Item Creator". When this is set to "Yes" then whoever created the Data View will automatically have the security permission to edit and administrate it added. The default value for this setting is "No". The behavior of Rock prior to v12.4 was to automatically grant the Data View creator "Administrate" and "Edit" permissions. As of v12.4 this will not happen unless the "Add Administrate Security to Item Creator" block setting is set to "Yes". This release does NOT change the security permissions for any existing Data Views.
This script will show all of the Persons where the Person is assigned "Edit" or "Administrate" permission and that same Person created the Data View. It will NOT include permissions other than "Edit" or "Administrate", permissions assigned to a role, Disallow permissions, or permissions assigned to a Person that didn't create the Data View. The permissions returned by this script are the permissions that the delete script will remove.
-- Shows the creator permissions granted to DataViews. This only for person level authorization and not security groups. DECLARE @dataViewEntityTypeId int = (SELECT [Id] FROM [EntityType] WHERE [Guid] = '57F8FA29-DCF1-4F74-8553-87E90F234139') SELECT dv.[Name] AS ReportName, p.[LastName] AS PersonLastName, p.[FirstName] AS PersonFirstName, a.* FROM [Auth] a JOIN [DataView] dv on a.[EntityId] = dv.[Id] JOIN [PersonAlias] pa on a.[PersonAliasId] = pa.[Id] JOIN [Person] p on pa.[PersonId] = p.[Id] WHERE a.[EntityTypeId] = @dataViewEntityTypeId AND a.[Action] IN ('Edit', 'Administrate') AND a.[AllowOrDeny] = 'A' AND dv.[CreatedByPersonAliasId] = a.PersonAliasId ORDER BY dv.[Name], p.[LastName], p.[FirstName]
Here is the DELETE script. It will remove all of the Data View security settings for Persons where the Person is assigned "Edit" or "Administrate" permission and that same Person created the Data View. It will NOT delete permissions other than "Edit" or "Administrate", permissions assigned to a role, Disallow permissions, or permissions assigned to a Person that didn't create the Data View.
After running this script Data View edit and administration security access will be dependent on Roles and the Users explicitly assigned the permissions after creating the Data View.
-- Removes the creator permissions granted to DataViews. This only affects person level authorization and not security groups. DECLARE @dataViewEntityTypeId int = (SELECT [Id] FROM [EntityType] WHERE [Guid] = '57F8FA29-DCF1-4F74-8553-87E90F234139') DELETE FROM [Auth] WHERE [Id] IN ( SELECT a.[Id] FROM [Auth] a JOIN [DataView] dv on a.[EntityId] = dv.[Id] WHERE a.[EntityTypeId] = @dataViewEntityTypeId AND a.[Action] IN ('Edit', 'Administrate') AND a.[AllowOrDeny] = 'A' AND dv.[CreatedByPersonAliasId] = a.[PersonAliasId])
The GroupDetail block has new setting called "Add Administrate Security to Group Creator". When this is set to "Yes" then whoever created the group will automatically have the security permission to administrate the group added. The default value for this setting is "No". The behavior of Rock prior to v12.1 was to automatically grant the Group creator "Administrate" permission. As of v12.1 this will not happen unless the "Add Administrate Security to Group Creator" block setting is set to "Yes". This release does NOT change the security permissions for any existing Groups.
If you would like to run a script to remove the existing "Administrate" group permissions granted to the group creater we have some handy SQL scripts!
This script will show all of the Group/Persons where the Person is assigned "Administrate" permission and that same Person created the Group. It will NOT include permissions other than "Administrate", permissions assigned to a role, Disallow permissions, or permissions assigned to a Person that didn't create the group. The permissions returned by this script are the permissions that the delete script will remove.
DECLARE @selectGroupEntityId int = (SELECT [Id] FROM [EntityType] WHERE [Guid] = '9BBFDA11-0D22-40D5-902F-60ADFBC88987') SELECT g.[Name] AS GroupName, p.[LastName] AS PersonLastName, p.[FirstName] AS PersonFirstName, a.* FROM [Auth] a JOIN [Group] g on a.[EntityId] = g.[Id] JOIN [PersonAlias] pa on a.[PersonAliasId] = pa.[Id] JOIN [Person] p on pa.[PersonId] = p.[Id] WHERE [EntityTypeId] = @selectGroupEntityId AND a.[Action] = 'Administrate' AND a.[AllowOrDeny] = 'A' AND g.[CreatedByPersonAliasId] = a.PersonAliasId ORDER BY g.[Name], p.[LastName], p.[FirstName]
Here is the DELETE script. It will remove all of the Group/Person security settings where the Person is assigned "Administrate" permission and that same Person created the Group. It will NOT delete permissions other than "Administrate", permissions assigned to a role, Disallow permissions, or permissions assigned to a Person that didn't create the group.
After running this script Group administration security access will be dependent on Roles and the Users explicitly assigned "Administrate" permission after creating the Group.
DECLARE @groupEntityId int = (SELECT [Id] FROM [EntityType] WHERE [Guid] = '9BBFDA11-0D22-40D5-902F-60ADFBC88987') DELETE FROM [Auth] WHERE [Id] IN ( SELECT a.[Id] FROM [Auth] a JOIN [Group] g on a.[EntityId] = g.[Id] WHERE [EntityTypeId] = @groupEntityId AND a.[Action] = 'Administrate' AND a.[AllowOrDeny] = 'A' AND g.[CreatedByPersonAliasId] = a.[PersonAliasId])
ScheduleICalHelper
InetCalendarHelper
DDay.iCal.Event
IList<DDay.iCal.Occurrence>
GetCalendarEvent()
GetICalEvent()
GetOccurrences(...)
GetICalOccurrences(...)
WorkflowLogService
WorkflowLog
COPY "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Facades\System.IO.dll" "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" COPY "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Facades\System.Linq.Expressions.dll" "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" COPY "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Facades\System.ComponentModel.dll" "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" COPY "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Facades\System.Threading.Tasks.dll" "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" COPY "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Facades\System.Collections.Concurrent.dll" "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2"
script
Sys.Application.add_load
web.config
The setter for property Rock.Model.Page.OutputCacheDuration has been made private. This property is obsolete and set programmically using the new CacheControlHeader property.
Rock.Model.Page.OutputCacheDuration
CacheControlHeader
Made the property Rock.Web.UI.Controls.PersonBasicEditor.PersonGender nullable.
Rock.Web.UI.Controls.PersonBasicEditor.PersonGender
Changed the setters for the following Cache object properties to private.
public property Rock.Web.Cache.AssessmentTypeCache.AssessmentPath
public property Rock.Web.Cache.AssessmentTypeCache.AssessmentResultsPath
public property Rock.Web.Cache.AssessmentTypeCache.BadgeColor
public property Rock.Web.Cache.AssessmentTypeCache.BadgeSummaryLava
public property Rock.Web.Cache.AssessmentTypeCache.Description
public property Rock.Web.Cache.AssessmentTypeCache.IconCssClass
public property Rock.Web.Cache.AssessmentTypeCache.IsActive
public property Rock.Web.Cache.AssessmentTypeCache.IsSystem
public property Rock.Web.Cache.AssessmentTypeCache.MinimumDaysToRetake
public property Rock.Web.Cache.AssessmentTypeCache.RequiresRequest
public property Rock.Web.Cache.AssessmentTypeCache.Title
public property Rock.Web.Cache.AttributeCache.IsPublic
public property Rock.Web.Cache.DocumentTypeCache.BinaryFileTypeId
public property Rock.Web.Cache.DocumentTypeCache.DefaultDocumentNameTemplate
public property Rock.Web.Cache.DocumentTypeCache.Name
public property Rock.Web.Cache.EntityAttributesCache.EntityAttributes
public property Rock.Web.Cache.EntityAttributesCache.EntityAttributesByEntityTypeId
public property Rock.Web.Cache.EntityDocumentTypesCache.EntityDocumentTypes
public property Rock.Web.Cache.EntityNoteTypesCache.EntityNoteTypes
public property Rock.Web.Cache.GroupTypeCache.RSVPReminderOffsetDays
public property Rock.Web.Cache.GroupTypeCache.RSVPReminderSystemCommunicationId
public property Rock.Web.Cache.LayoutCache.LayoutMobilePhone
public property Rock.Web.Cache.LayoutCache.LayoutMobileTablet
public property Rock.Web.Cache.NoteTypeCache.AllowsReplies
public property Rock.Web.Cache.NoteTypeCache.AllowsWatching
public property Rock.Web.Cache.NoteTypeCache.ApprovalUrlTemplate
public property Rock.Web.Cache.NoteTypeCache.AutoWatchAuthors
public property Rock.Web.Cache.NoteTypeCache.BackgroundColor
public property Rock.Web.Cache.NoteTypeCache.BorderColor
public property Rock.Web.Cache.NoteTypeCache.FontColor
public property Rock.Web.Cache.NoteTypeCache.MaxReplyDepth
public property Rock.Web.Cache.NoteTypeCache.RequiresApprovals
public property Rock.Web.Cache.NoteTypeCache.SendApprovalNotifications
public property Rock.Web.Cache.PersistedDatasetCache.BuildScript
public property Rock.Web.Cache.PersistedDatasetCache.BuildScriptType
public property Rock.Web.Cache.PersistedDatasetCache.EntityTypeId
public property Rock.Web.Cache.PersistedDatasetCache.ExpireDateTime
public property Rock.Web.Cache.PersistedDatasetCache.IsActive
public property Rock.Web.Cache.PersistedDatasetCache.IsSystem
public property Rock.Web.Cache.PersistedDatasetCache.MemoryCacheDurationMS
public property Rock.Web.Cache.PersistedDatasetCache.ResultFormat
public property Rock.Web.Cache.PersistedDatasetCache.TimeToBuildMS
public property Rock.Web.Cache.SiteCache.AdditionalSettings
public property Rock.Web.Cache.SiteCache.ConfigurationMobilePhoneBinaryFileId
public property Rock.Web.Cache.SiteCache.ConfigurationMobilePhoneFileUrl
public property Rock.Web.Cache.SiteCache.ConfigurationMobileTabletBinaryFileId
public property Rock.Web.Cache.SiteCache.ConfigurationMobileTabletFileUrl
public property Rock.Web.Cache.SiteCache.EnableExclusiveRoutes
public property Rock.Web.Cache.SiteCache.IsActive
public property Rock.Web.Cache.SiteCache.LatestVersionDateTime
public property Rock.Web.Cache.SiteCache.SiteType
public property Rock.Web.Cache.SiteCache.ThumbnailBinaryFileId
public property Rock.Web.Cache.SiteCache.ThumbnailFileUrl
public property Rock.Web.Cache.SmsActionCache.ContinueAfterProcessing
public property Rock.Web.Cache.SmsActionCache.IsActive
public property Rock.Web.Cache.SmsActionCache.Name
public property Rock.Web.Cache.SmsActionCache.Order
public property Rock.Web.Cache.SmsActionCache.SmsActionComponentEntityTypeId
public property Rock.Web.Cache.SmsActionCache.SmsPipelineId
Deleted field Rock.DebugHelper._callMSTotal. Use property Rock.DebugHelper.CallMSTotal instead.
Rock.DebugHelper._callMSTotal
Rock.DebugHelper.CallMSTotal
Property Rock.Achievement.AchievementComponent.AttributeKeysStoredInConfig has been changed from abstract to readonly.
Rock.Achievement.AchievementComponent.AttributeKeysStoredInConfig
Property Rock.Achievement.AchievementComponent.SupportedConfiguration has been changed from abstract to readonly.
Rock.Achievement.AchievementComponent.SupportedConfiguration
Achievements have been expanded to be used for other things besides Streaks. The following breaking changes have been made to support this:
Rock.Model.StreakAchievementAttempt
Rock.Model.AchievementAttempt
Rock.Model.StreakAchievementAttemptExtensionMethods
Rock.Model.AchievementAttemptExtensionMethods
Rock.Model.StreakAchievementAttemptService
Rock.Model.AchievementAttemptService
Rock.Model.StreakTypeAchievementType
Rock.Model.AchievementType
Rock.Model.StreakTypeAchievementTypeExtensionMethods
Rock.Model.AchievementTypeExtensionMethods
Rock.Model.StreakTypeAchievementTypePrerequisite
Rock.Model.AchievementTypePrerequisite
Rock.Model.StreakTypeAchievementTypePrerequisiteExtensionMethods
Rock.Model.AchievementTypePrerequisiteExtensionMethods
Rock.Model.StreakTypeAchievementTypePrerequisiteService
Rock.Model.AchievementTypePrerequisiteService
Rock.Model.StreakTypeAchievementTypeService
Rock.Model.AchievementTypeService
Rock.Transactions.StreakAchievementAttemptChangeTransaction
Rock.Transactions.AchievementAttemptChangeTransaction
Rock.Web.Cache.StreakTypeAchievementTypeCache
Rock.Web.Cache.AchievementTypeCache
Rock.Web.Cache.StreakTypeAchievementTypePrerequisiteCache
Rock.Web.Cache.AchievementTypePrerequisiteCache
Rock.Web.UI.Controls.AchievementComponentPicker
Rock.Web.UI.Controls.IStreakTypeAchievementTypePicker
Rock.Web.UI.Controls.IAchievementTypePicker
Rock.Web.UI.Controls.StreakTypeAchievementTypePicker
Rock.Web.UI.Controls.AchievementTypePicker
Rock.Rest.Controllers.StreakAchievementAttemptsController
Rock.Rest.Controllers.AchievementAttemptsController
Rock.Rest.Controllers.StreakTypeAchievementTypePrerequisitesController
Rock.Rest.Controllers.AchievementTypePrerequisitesController
Rock.Rest.Controllers.StreakTypeAchievementTypesController
Rock.Rest.Controllers.AchievementTypesController
The Following Constructors have been changed to use AchievementType instead of StreakTypeAchievementType in the signature
The following methods have been changed to use AchievementType instead of StreakTypeAchievementType in the signature
Rock.Achievement.AchievementComponent.LoadAttributes(AchievementType achievementType)
Rock.Achievement.AchievementComponent.Process(RockContext rockContext, AchievementTypeCache achievementTypeCache, IEntity sourceEntity)
The following method signatures have changed to add bool returnAchievements = False
bool returnAchievements = False
Rock.Rest.Controllers.StreakTypesController.MarkAttendanceEngagement(int streakTypeId, AttendanceEngagementArgs attendanceEngagementArgs, int? personId, DateTime? dateOfEngagement, bool returnAchievements = False)
Rock.Rest.Controllers.StreakTypesController.MarkInteractionEngagement(int streakTypeId, InteractionEngagementArgs interactionEngagementArgs, int? personId, DateTime? dateOfEngagement, bool returnAchievements = False)
The following properties changed from type StreakAchievementAttempt to AchievementAttempt
public property Rock.Model.ProgressStatement.BestAttempt
public property Rock.Model.ProgressStatement.MostRecentAttempt
The following properties have been removed
The following classes have been removed as part of and updated Workflow Logging process:
Rock.Rest.Controllers.WorkflowLogsController
Rock.Model.WorkflowLogExtensionMethods
Rock.Model.WorkflowLogService
[RockObsolete("1.7")]
SystemEmail
ChannelId
InteractionChannelId
RelatedDataViewFilterBase
IRelatedChildDataView
PushNotification
Removed the setter for public property Rock.Storage.AssetStorage.AssetStorageComponent.FileSystemComponentHttpContext. This property will always use HttpContext.Current
public property Rock.Storage.AssetStorage.AssetStorageComponent.FileSystemComponentHttpContext
Removed property Rock.Model.CommunicationTemplate.Mediums
Rock.Model.CommunicationTemplate.Mediums
public field Rock.Communication.Transport.Twilio.AcceptedMimeTypes was changed from a static list to a readonly static list.
public field Rock.Communication.Transport.Twilio.AcceptedMimeTypes
public field Rock.Communication.Transport.Twilio.MediaSizeLimitBytes was changed from a static int to a const int with value 5242880.
public field Rock.Communication.Transport.Twilio.MediaSizeLimitBytes
public field Rock.Communication.Transport.Twilio.SupportedMimeTypes was changed from a static list to a readonly static list.
public field Rock.Communication.Transport.Twilio.SupportedMimeTypes
Updated the following constant values:
public field Rock.Blocks.Types.Mobile.Events.CalendarEventList.AttributeDefaults.DayHeaderTemplate
From: " "
To: ""
public field Rock.Blocks.Types.Mobile.Events.CalendarEventList.AttributeDefaults.EventTemplate
From: " {% if Item.EndDateTime == null %} {% else %} {% endif %} "
To: " {% if Item.EndDateTime == null %} {% else %} {% endif %} "
public field Rock.Blocks.Types.Mobile.Events.CalendarView.AttributeDefaults.EventSummary
Removed public class Rock.Blocks.Types.Mobile.Cms.ContentChannelItemList
public class Rock.Blocks.Types.Mobile.Cms.ContentChannelItemList
Removed property public decimal SpacingBase from class public property Rock.DownhillCss.DownhillSettings
property public decimal SpacingBase
public property Rock.DownhillCss.DownhillSettings
Removed the public property setter on Rock.Web.Cache.GlobalAttributesCache.Attributes. This was to fix cache issues in a multi server environment.
Rock.Web.Cache.GlobalAttributesCache.Attributes
Classes, Methods, and Properties marked "Obsolete" in version 7 have been removed. The following are no longer available:
public property Rock.CheckIn.CheckinType.PreventInactivePeopele
public method Rock.Communication.Email.Send(Guid emailTemplateGuid, List recipients, string appRoot = "", string themeRoot = "", bool createCommunicationHistory = True)
public method Rock.Communication.Email.Send(string fromEmail, string subject, List recipients, string message, string appRoot = "", string themeRoot = "", List attachments, bool createCommunicationHistory = True)
public method Rock.Communication.Email.Send(string fromEmail, string fromName, string subject, List recipients, string message, string appRoot = "", string themeRoot = "", List attachments, bool createCommunicationHistory = True)
public method Rock.Communication.MediumComponent.GetHtmlPreview(Communication communication, Person person)
public method Rock.Communication.MediumComponent.GetMessageDetails(Communication communication)
public property Rock.Communication.MediumComponent.SupportsBulkCommunication
public method Rock.Communication.TransportComponent.Send(Communication communication)
public method Rock.Communication.TransportComponent.Send(SystemEmail template, List recipients, string appRoot, string themeRoot)
public method Rock.Communication.TransportComponent.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot)
public method Rock.Communication.TransportComponent.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot)
public method Rock.Communication.TransportComponent.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.TransportComponent.Send(List recipients, string from, string fromName, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Medium.Email.GetHtmlPreview(Communication communication, Person person)
public method Rock.Communication.Medium.Email.GetMessageDetails(Communication communication)
public property Rock.Communication.Medium.Email.SupportsBulkCommunication
public method Rock.Communication.Medium.Sms.GetHtmlPreview(Communication communication, Person person)
public method Rock.Communication.Medium.Sms.GetMessageDetails(Communication communication)
public property Rock.Communication.Medium.Sms.SupportsBulkCommunication
public method Rock.Communication.Transport.SMTPComponent.Send(List recipients, string from, string fromName, string subject, string body, string appRoot, string themeRoot, List attachments, bool createCommunicationHistory)
public method Rock.Communication.Transport.SMTPComponent.Send(List recipients, string from, string fromName, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Transport.SMTPComponent.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Transport.SMTPComponent.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot)
public method Rock.Communication.Transport.SMTPComponent.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot, bool createCommunicationHistory, Dictionary metaData)
public method Rock.Communication.Transport.SMTPComponent.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot, bool createCommunicationHistory)
public method Rock.Communication.Transport.SMTPComponent.Send(SystemEmail template, List recipients, string appRoot, string themeRoot)
public method Rock.Communication.Transport.SMTPComponent.Send(SystemEmail template, List recipients, string appRoot, string themeRoot, bool createCommunicationHistory)
public method Rock.Communication.Transport.SMTPComponent.Send(Communication communication)
public method Rock.Communication.Transport.SMTPComponent.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot)
public method Rock.Communication.Transport.Twilio.Send(List recipients, string from, string fromName, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Transport.Twilio.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Transport.Twilio.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot)
public method Rock.Communication.Transport.Twilio.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot)
public method Rock.Communication.Transport.Twilio.Send(Communication communication)
public method Rock.Communication.Transport.Twilio.Send(SystemEmail template, List recipients, string appRoot, string themeRoot)
public interface Rock.Data.IAnalytic
public interface Rock.Data.IAnalyticHistorical
public field Rock.SystemGuid.ServiceJob.MIGRATE_COMMUNICATION_MEDIUM_DATA
public field Rock.SystemGuid.ServiceJob.MIGRATE_INTERACTIONS_DATA
public class Rock.Jobs.MigrateCommunicationMediumData
public class Rock.Jobs.MigrateInteractionsData
public method Rock.Lava.LavaHelper.GetPagePropertiesMergeObject(RockPage rockPage)
public method Rock.Lava.LegacyLavaUpdater.CheckCommunicationTemplate()
public property Rock.Model.BackgroundCheck.ResponseXml
public method Rock.Model.Communication.GetMediumDataValue(string key)
public method Rock.Model.Communication.GetNextPending(int communicationId, RockContext rockContext)
public method Rock.Model.Communication.GetRecipientCount(RockContext rockContext)
public property Rock.Model.Communication.MediumData
public method Rock.Model.Communication.SetMediumDataValue(string key, string value)
public method Rock.Model.CommunicationService.CreateEmailCommunication(List recipientEmails, string fromName, string fromAddress, string replyTo, string subject, string htmlMessage, string textMessage, bool bulkCommunication, CommunicationRecipientStatus recipientStatus = 1, int? senderPersonAliasId)
public method Rock.Model.CommunicationService.CreateEmailCommunication(List recipientEmails, string fromName, string fromAddress, string replyTo, string subject, string message, bool bulkCommunication, CommunicationRecipientStatus recipientStatus = 1, int? senderPersonAliasId)
public property Rock.Model.CommunicationTemplate.AttachmentBinaryFileIds
public method Rock.Model.CommunicationTemplate.GetMediumDataValue(string key)
public property Rock.Model.CommunicationTemplate.MediumData
public method Rock.Model.CommunicationTemplate.SetMediumDataValue(string key, string value)
public method Rock.Model.FinancialPaymentDetail.SetFromPaymentInfo(PaymentInfo paymentInfo, GatewayComponent paymentGateway, RockContext rockContext, List changes)
public method Rock.Model.FinancialScheduledTransactionService.ProcessPayments(FinancialGateway gateway, string batchNamePrefix, List payments, string batchUrlFormat = "", Nullable receiptEmail)
public property Rock.Model.Group.MustMeetRequirementsToAddMember
public method Rock.Model.Group.PersonMeetsGroupRequirements(int personId, int? groupRoleId)
public method Rock.Model.GroupMember.GetGroupRequirementsStatuses()
public method Rock.Model.GroupRequirement.PersonMeetsGroupRequirement(int personId, int? groupRoleId)
public method Rock.Model.GroupRequirement.PersonQueryableMeetsGroupRequirement(RockContext rockContext, IQueryable personQry, int? groupRoleId)
public method Rock.Model.GroupRequirement.UpdateGroupMemberRequirementResult(RockContext rockContext, int personId, MeetsGroupRequirement meetsGroupRequirement)
public method Rock.Model.GroupService.GroupMembersNotMeetingRequirements(int groupId, bool includeWarnings, bool includeInactive = False)
public property Rock.Model.PersonalDevice.PersonalDeviceTypeId
public method Rock.Model.PersonService.GetByEncryptedKey(string encryptedKey, bool followMerges)
public method Rock.Model.TagService.Get(int entityTypeId, string entityQualifierColumn, string entityQualifierValue, int? ownerId)
public method Rock.Model.Workflow.Activate(WorkflowType workflowType, string name)
public method Rock.Model.WorkflowActivity.Activate(WorkflowActivityType activityType, Workflow workflow)
public method Rock.Model.WorkflowActivity.Activate(WorkflowActivityType activityType, Workflow workflow, RockContext rockContext)
public property Rock.Transactions.SaveCommunicationTransaction.TextMessage
public method Rock.Utility.SparkLinkHelper.SendToSpark()
public property Rock.Web.Cache.EntityTypeCache.IsAnalyticHistoricalSupported
public property Rock.Web.Cache.EntityTypeCache.IsAnalyticSupported
public property Rock.Web.UI.Controls.AttributeEditor.ShowInGridVisible
public class Rock.Web.UI.Controls.FieldTypeList
public method Rock.Web.UI.Controls.GridFilter.DisplayFilterValueArgs..ctor(string key, string name, string value)
public method Rock.Web.UI.Controls.GridFilter.DisplayFilterValueArgs..ctor(UserPreference userPreference)
public property Rock.Web.UI.Controls.HtmlEditor.OnChangeScript
public method Rock.Web.UI.Controls.ImageUploaderEventArgs..ctor(int? binaryFileId)
public class Rock.Web.UI.Controls.LiquidField
public class Rock.Web.UI.Controls.LiquidFieldTemplate
public method Rock.Workflow.ActionComponent.LoadAttributes(WorkflowAction action)
public method Rock.Communication.Transport.MailgunHttp.Send(List recipients, string from, string fromName, string subject, string body, string appRoot, string themeRoot, List attachments, bool createCommunicationHistory)
public method Rock.Communication.Transport.MailgunHttp.Send(List recipients, string from, string fromName, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Transport.MailgunHttp.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot, List attachments)
public method Rock.Communication.Transport.MailgunHttp.Send(List recipients, string from, string subject, string body, string appRoot, string themeRoot)
public method Rock.Communication.Transport.MailgunHttp.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot, bool createCommunicationHistory, Dictionary metaData)
public method Rock.Communication.Transport.MailgunHttp.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot, bool createCommunicationHistory)
public method Rock.Communication.Transport.MailgunHttp.Send(SystemEmail template, List recipients, string appRoot, string themeRoot, bool createCommunicationHistory)
public method Rock.Communication.Transport.MailgunHttp.Send(SystemEmail template, List recipients, string appRoot, string themeRoot)
public method Rock.Communication.Transport.MailgunHttp.Send(Communication communication)
public method Rock.Communication.Transport.MailgunHttp.Send(Dictionary mediumData, List recipients, string appRoot, string themeRoot)
public method Rock.Rest.Controllers.PeopleController.GetImpersonationParameterObsolete(int personId)
public enum Rock.Model.CommunicationType
Restructured the DataFilters to use the generic class Rock.Reporting.DataFilter.RelatedDataViewFilterBase<TTargetEntity, TRelatedEntity> as a parent class. This allows Rock to remove redundant code.
Rock.Reporting.DataFilter.RelatedDataViewFilterBase<TTargetEntity, TRelatedEntity>
Removed the following properties and methods:
public property AppliesToEntityType
public property Section
public method CreateChildControls
public method FormatSelection
public method GetClientFormatSelection
public method GetSelection
public method GetTitle
public method SetSelection
public method RenderControls
From the following classes:
Rock.Reporting.DataFilter.BenevolenceRequest.BenevolenceResultDataViewFilter
Rock.Reporting.DataFilter.BenevolenceResult.BenevolenceRequestDataViewFilter
Rock.Reporting.DataFilter.Group.GroupTypeDataViewFilter
Rock.Reporting.DataFilter.GroupMembers.ContainsPeopleFilter
Rock.Reporting.DataFilter.Person.AttendanceDataViewFilter
Rock.Reporting.DataFilter.Person.BenevolenceRequestDataViewFilter
Rock.Reporting.DataFilter.Person.ConnectionRequestDataViewFilter
Rock.Reporting.DataFilter.Person.FinancialPledgeDataViewFilter
Rock.Reporting.DataFilter.Person.FinancialScheduledTransactionDataViewFilter
Rock.Reporting.DataFilter.Person.FinancialTransactionDataViewFilter
Rock.Reporting.DataFilter.Person.HistoryDataViewFilter
Rock.Reporting.DataFilter.Person.InteractionDataViewFilter
Rock.Reporting.DataFilter.Person.PersonalDeviceDataViewFilter
Rock.Reporting.DataFilter.Person.PrayerRequestDataViewFilter
Rock.Reporting.DataFilter.Person.StepDataViewFilter
Rock.Reporting.DataFilter.Person.UserLoginDataViewFilter
Rock.Reporting.DataFilter.PrayerRequest.ContainsPeopleFilter
Deleted class Rock.Reporting.DataFilter.Group.RelatedDataViewFilterBase<TTargetEntity, TRelatedEntity> as redundant of Rock.Reporting.DataFilter.RelatedDataViewFilterBase<TTargetEntity, TRelatedEntity>.
Rock.Reporting.DataFilter.Group.RelatedDataViewFilterBase<TTargetEntity, TRelatedEntity>
Removed the ICacheable interface from public class Rock.Web.Cache.ModelCache<T, TT> as it interfered with some plugins.
SystemCommunication
Rock.SystemGuid.Block
public class Rock.SystemGuid.Block
Changed property public property Rock.Model.FeeInfo.RegistrationTemplateFeeItemId from int to nullable int
public property Rock.Model.FeeInfo.RegistrationTemplateFeeItemId
Renamed public property Rock.Model.Site.ConfigurationMobilePhoneFileId to Rock.Model.Site.ConfigurationMobilePhoneBinaryFileId
public property Rock.Model.Site.ConfigurationMobilePhoneFileId
Rock.Model.Site.ConfigurationMobilePhoneBinaryFileId
Renamed public property Rock.Model.Site.ConfigurationMobileTabletFileId to Rock.Model.Site.ConfigurationMobileTabletBinaryFileId
public property Rock.Model.Site.ConfigurationMobileTabletFileId
Rock.Model.Site.ConfigurationMobileTabletBinaryFileId
Renamed public property Rock.Model.Site.ThumbnailFileId to Rock.Model.Site.ThumbnailBinaryFileId
public property Rock.Model.Site.ThumbnailFileId
Rock.Model.Site.ThumbnailBinaryFileId
Renamed public property Rock.Web.Cache.SiteCache.ConfigurationMobilePhoneFileId to Rock.Web.Cache.SiteCache.ConfigurationMobilePhoneBinaryFileId
public property Rock.Web.Cache.SiteCache.ConfigurationMobilePhoneFileId
Rock.Web.Cache.SiteCache.ConfigurationMobilePhoneBinaryFileId
Renamed public property Rock.Web.Cache.SiteCache.ConfigurationMobileTabletFileId to Rock.Web.Cache.SiteCache.ConfigurationMobileTabletBinaryFileId
public property Rock.Web.Cache.SiteCache.ConfigurationMobileTabletFileId
Rock.Web.Cache.SiteCache.ConfigurationMobileTabletBinaryFileId
Renamed public property Rock.Web.Cache.SiteCache.ThumbnailFileId to Rock.Web.Cache.SiteCache.ThumbnailBinaryFileId
public property Rock.Web.Cache.SiteCache.ThumbnailFileId
Rock.Web.Cache.SiteCache.ThumbnailBinaryFileId
Moved public class Rock.PersonProfile.AlertNote.AlertNote to Rock.Badge.Component.AlertNote to support badges for entities other than Person.
Rock.PersonProfile.AlertNote.AlertNote
The following classes have been moved from namespace Rock.PersonProfile.Badge to Rock.Badge.Component to support badges for entities other than Person
Rock.PersonProfile.Badge
Rock.Badge.Component
The following are breaking changes between v9 pre-alpha versions
public property Rock.Field.FieldVisibilityRule.ComparedToAttributeGuid
Removed property
public method Rock.Field.FieldVisibilityRules.Evaluate
Change method signature
public bool Evaluate(Dictionary<int, AttributeValueCache> attributeValues)
public bool Evaluate(Dictionary<int, AttributeValueCache> attributeValues, Dictionary<RegistrationPersonFieldType, string> personFieldValues)
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_CLUSTER_INFLUENTIAL
Renamed to public field Rock.SystemGuid.DefinedValue.MOTIVATOR_RELATIONAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_RELATIONAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_CLUSTER_INTELLECTUAL
Renamed to public field Rock.SystemGuid.DefinedValue.MOTIVATOR_INTELLECTUAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_INTELLECTUAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_CLUSTER_OPERATIONAL
Renamed to public field Rock.SystemGuid.DefinedValue.MOTIVATOR_POSITIONAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_POSITIONAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_CLUSTER_ORGANIZATIONAL
Renamed to public field Rock.SystemGuid.DefinedValue.MOTIVATOR_DIRECTIONAL_THEME
public field Rock.SystemGuid.DefinedValue.MOTIVATOR_DIRECTIONAL_THEME
public method Rock.Utility.Scripturize.Parse
Changed method signature
public static string Parse(string text, string defaultTranslation = "NLT", LandingSite landingSite = 0, string cssClass = "")
public static string Parse(string text, string defaultTranslation = "NLT", LandingSite landingSite = 0, string cssClass = "", bool openInTab = False)
public property Rock.Web.UI.Controls.FieldVisibilityRulesEditor.ComparableAttributes
public property Rock.Web.UI.Controls.FieldVisibilityWrapper.AttributeId
public method Rock.Web.UI.Controls.FieldVisibilityWrapper.UpdateVisibility
public void UpdateVisibility(Dictionary<int, AttributeValueCache> attributeValues)
public void UpdateVisibility(Dictionary<int, AttributeValueCache> attributeValues, Dictionary<RegistrationPersonFieldType, string> personFieldValues)
GetImpersonationParameter
// From this: [RouteAttribute("api/FinancialScheduledTransactions/WithPreviousTransaction")] public HttpResponseMessage GetWithPreviousTransaction(int pageSize, int pageNumber) // To this: [RouteAttribute("api/FinancialScheduledTransactions/WithPreviousTransaction")] public virtual HttpResponseMessage GetWithPreviousTransaction(int skip, int top) // From this: [RouteAttribute("api/FinancialScheduledTransactions/Process/{scheduledTransactionId}")] public HttpResponseMessage ProcessPayment(int scheduledTransactionId, bool ignoreRepeatChargeProtection = False, bool ignoreScheduleAdherenceProtection = False) // To this: [RouteAttribute("api/FinancialScheduledTransactions/Process/{scheduledTransactionId}")] public virtual HttpResponseMessage ProcessPayment(int scheduledTransactionId, bool enableDuplicateChecking = True, bool enableScheduleAdherenceProtection = True) // From this: [RouteAttribute("api/FinancialTransactions/Process")] public HttpResponseMessage ProcessPayment(AutomatedPaymentArgs automatedPaymentArgs, bool ignoreRepeatChargeProtection = False, bool ignoreScheduleAdherenceProtection = False) // To this: [RouteAttribute("api/FinancialTransactions/Process")] public virtual HttpResponseMessage ProcessPayment(AutomatedPaymentArgs automatedPaymentArgs, bool enableDuplicateChecking = True, bool enableScheduleAdherenceProtection = True) // From this: [RouteAttribute("api/Groups/GetChildren/{id}")] public IQueryable GetChildren(int id, int rootGroupId = 0, bool limitToSecurityRoleGroups = False, string includedGroupTypeIds = "", string excludedGroupTypeIds = "", bool includeInactiveGroups = False, GetCountsType countsType = 0, int campusId = 0, bool includeNoCampus = False, bool limitToPublic = False) // To this: [RouteAttribute("api/Groups/GetChildren/{id}")] public IQueryable GetChildren(int id, int rootGroupId = 0, bool limitToSecurityRoleGroups = False, string includedGroupTypeIds = "", string excludedGroupTypeIds = "", bool includeInactiveGroups = False, GetCountsType countsType = 0, int campusId = 0, bool includeNoCampus = False, bool limitToPublic = False, bool limitToSchedulingEnabled = False)
The following are breaking changes between v9 and v8
public property Rock.Model.RegistrationInstance.MaxAttendees
Changed the property from int to nullable int
public property Rock.Model.RegistrationTemplate.MaxRegistrants
public property Rock.Web.UI.Controls.RegistrationInstanceEditor.MaxAttendees
Changed the property from into to nullable int to match the RegistrationInstance model
The following are breaking changes between pre-alpha v9 versions but not v8
public method Rock.Financial.IHostedGatewayComponent.CreateCustomerAccount
Removed string paymentToken from the method signature
string paymentToken
public string CreateCustomerAccount(FinancialGateway financialGateway, string paymentToken, PaymentInfo paymentInfo, out String& errorMessage)
public string CreateCustomerAccount(FinancialGateway financialGateway, ReferencePaymentInfo paymentInfo, out String& errorMessage)
public method Rock.Financial.IHostedGatewayComponent.GetHostedPaymentInfoToken
Removed method
public event Rock.Financial.IHostedGatewayPaymentControlTokenEvent.TokenReceived
Added event arg "HostedGatewayPaymentControlTokenEventArgs" to the TokenReceived Event
public class Rock.Model.AttendanceLabelDataConfiguration
This class was never used and has been removed.
public method Rock.Model.AttendanceOccurrenceService.AttendanceOccurrenceGroupLocationScheduleConfigJoinQuery
Changed method signature to accept a list of DateTime instead of a single one.
public IQueryable<AttendanceOccurrenceGroupLocationScheduleConfigJoinResult> AttendanceOccurrenceGroupLocationScheduleConfigJoinQuery(DateTime occurrenceDate, int scheduleId, List<int> groupLocationIds)
public IQueryable<AttendanceOccurrenceGroupLocationScheduleConfigJoinResult> AttendanceOccurrenceGroupLocationScheduleConfigJoinQuery(List<DateTime> occurrenceDateList, int scheduleId, List<int> groupLocationIds)
public method Rock.Model.AttendanceOccurrenceService.CreateMissingAttendanceOccurrences
public List<AttendanceOccurrence> CreateMissingAttendanceOccurrences(DateTime occurrenceDate, int scheduleId, List<int> groupLocationIds)
public List<AttendanceOccurrence> CreateMissingAttendanceOccurrences(List<DateTime> occurrenceDateList, int scheduleId, List<int> groupLocationIds)
public enum Rock.Model.AttendanceRecordRequiredForCheckIn
Clarified Enum names to better reflect their function
public method Rock.Model.AttendanceService.SendScheduleConfirmationSystemEmails
Added out parameter for error messages
public int SendScheduleConfirmationSystemEmails(IQueryable<Attendance> sendConfirmationAttendancesQuery)
public int SendScheduleConfirmationSystemEmails(IQueryable<Attendance> sendConfirmationAttendancesQuery, out List<string> errorMessages)
public property Rock.Model.SchedulerResource.HasBlackoutConflict
Removed setter and added logic to the getter to return true if the number of blackout dates are equat or greater than the number of occurrences for the week.
public property Rock.Model.SchedulerResourceAttend.ConfirmationStatus
Removed Property
public field Rock.SystemGuid.SystemEmail.SCHEDULING_UPDATE
Renamed to SCHEDULING_CONFIRMATION
SCHEDULING_CONFIRMATION
The following class inheritance was changed Rock.NMI.Gateway:
Rock.NMI.Gateway
This class is now using an IThreeStepGatewayComponent interface instead of an abstract class.
Removed setter from public property Rock.Model.TemplateFeeReport.RegistrantName. This is now a calculated value using the property RegistrantPerson.FullName
public property Rock.Model.TemplateFeeReport.RegistrantName
Removed setter from public property Rock.Model.TemplateFeeReport.FeeTotal. This is now a calculated value using Quantity * Cost.
public property Rock.Model.TemplateFeeReport.FeeTotal
public class Rock.Rest.Controllers.AssetStorageProviderController was renamed to public class Rock.Rest.Controllers.AssetStorageProvidersController.
public class Rock.Rest.Controllers.AssetStorageProviderController
public class Rock.Rest.Controllers.AssetStorageProvidersController
Class public class Rock.Model.SpiritualGiftsService.SpiritalGift renamed to public class Rock.Model.SpiritualGiftsService.SpiritualGift
public class Rock.Model.SpiritualGiftsService.SpiritalGift
public class Rock.Model.SpiritualGiftsService.SpiritualGift
No breaking changes.
Renamed public class Rock.Security.ExternalAuthentication.Google.accesstokenresponse to public class Rock.Security.ExternalAuthentication.Google.AccessTokenResponse. This is a POCO only used for the google security class to serialize to JSON. Probably should be private.
public class Rock.Security.ExternalAuthentication.Google.accesstokenresponse
The following properties, method, and classes were removed because they have been obsolete for more than two versions.
public method Rock.Address.VerificationComponent.VerifyLocation
public property Rock.Chart.IChartData.SeriesId
public property Rock.Chart.SummaryData.SeriesId
public property Rock.CheckIn.CheckinType.SecurityCodeLength
public property Rock.Financial.ACHPaymentInfo.BankName
public class Rock.Trnsactions.SendPaymentReciepts
public method Rock.Web.Cache.GlobalAttributesCache.GetMergeFields
public property Rock.Web.UI.Controls.BadgeField.ImportantMax
public property Rock.Web.UI.Controls.BadgeField.ImportantMin
public property Rock.Web.UI.Controls.FlotChart.EntityId
public property Rock.Web.UI.Controls.FlotChart.SeriesNameUrl
public class Rock.Migrations.HotFixMigrations.AddAttendanceIndex
public class Rock.Migrations.HotFixMigrations.FixAttendanceEmail
public class Rock.Migrations.HotFixMigrations.FixBaptismBadge
public class Rock.Migrations.HotFixMigrations.FixLabelMergeFields
public class Rock.Migrations.HotFixMigrations.StatementProcs
public class Rock.Migrations.HotFixMigrations.ValueAsNumeric
public property Rock.Rest.Controllers.ExceptionLogsController.ExceptionChartData.SeriesId
public method Rock.Rest.Controllers.GroupsController.GetByLocation
public method Rock.Rest.Controllers.MetricValuesController.GetSeriesName
public method Rock.Rest.Controllers.MetricValuesController.GetSeriesPartitionName
The following methods are only used internally and there should be no impact
public method Rock.Jobs.PostV80DataMigrations.CreateIndexInteractionsForeignKey
public method Rock.Jobs.PostV80DataMigrations.UpdateInteractionSummaryForPageViews
public method Rock.Jobs.PostV80DataMigrations.UpdateSlugForContentChannelItems
Refactor of Asset Manager classes(breaking for 9.0):
public class Rock.Model.AssetStorageSystem
public class Rock.Model.AssetStorageSystemExtensionMethods
public class Rock.Model.AssetStorageSystemService
public class Rock.Storage.AssetStorage.AmazonS3Component
public property Rock.Storage.AssetStorage.Asset.AssetStorageSystemId
public class Rock.Storage.AssetStorage.FileSystemComponent
public class Rock.Rest.Controllers.AssetStorageSystemsController
The following methods where removed for 8.* functionality. No breaking chagnes for released functionality.
public method Rock.Utility.Ncoa.SentNotification
Removed public method Rock.Migrations.Checkr_CreatePages.MakePMMDefaultWorkflowAction
The following Properties where changed from static readonly strings to support Checkr requirements:
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_APISERVER
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_CANDIDATES_URL
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_DOCUMENT_URL
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_INVITATIONS_URL
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_PACKAGES_URL
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_REPORT_URL
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_TOKEN_URL
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_TYPENAME_PREFIX
public field Rock.Checkr.Constants.CheckrConstants.CHECKR_WORKFLOW_TYPE_NAME
public field Rock.Migrations.Checkr_CreatePages.NEW_PMM_WORKFLOW_TYPE_NAME
public field Rock.SystemGuid.WorkflowType.PROTECTMYMINISTRY changed from static readonly string to constant
Removed REST authorization controllers to prevent security issues.
public method Rock.Rest.Controllers.AuthController.FacebookLogin removed
public method Rock.Rest.Controllers.AuthController.GoogleLogin removed
public method Rock.Rest.Controllers.AuthController.TwitterLogin removed
public class Rock.Security.Authentication.Auth0.Rest.Controllers.Auth0Controller removed REST functionality
Rock.Model.Group.AddUserAccountsDuringSync
Rock.Model.GroupSync.AddUserAccountsDuringSync
Rock.Model.Group.ExitSystemEmail
Rock.Model.GroupSync.ExitSystemEmail
Rock.Model.Group.ExitSystemEmailId
Rock.Model.GroupSync.ExitSystemEmailId
Rock.Model.Group.SyncDataView
Rock.Model.GroupSync.SyncDataView
Rock.Model.Group.SyncDataViewId
Rock.Model.Group.WelcomeSystemEmail
Rock.Model.Group.WelcomeSystemEmailId
Rock.Web.UI.ReactBlock
Rock.Web.Cache.AttributeCache.CategoryIds
Rock.Web.Cache.AttributeCache.IsAnalytic
Rock.Web.Cache.BlockCache.BlockTypeId
Rock.Web.Cache.BlockCache.CssClass
Rock.Web.Cache.BlockCache.IsSystem
Rock.Web.Cache.BlockCache.LayoutId
Rock.Web.Cache.BlockCache.Name
Rock.Web.Cache.BlockCache.Order
Rock.Web.Cache.BlockCache.OutputCacheDuration
Rock.Web.Cache.BlockCache.PageId
Rock.Web.Cache.BlockCache.PostHtml
Rock.Web.Cache.BlockCache.PreHtml
Rock.Web.Cache.BlockCache.SiteId
Rock.Web.Cache.BlockCache.Zone
Rock.Web.Cache.BlockTypeCache.CheckedSecurityActions
Rock.Web.Cache.BlockTypeCache.Description
Rock.Web.Cache.BlockTypeCache.IsInstancePropertiesVerified
Rock.Web.Cache.BlockTypeCache.IsSystem
Rock.Web.Cache.BlockTypeCache.Name
Rock.Web.Cache.BlockTypeCache.Path
Rock.Web.Cache.BlockTypeCache.SecurityActions
Rock.Web.Cache.CampusCache.CampusLocation.City
Rock.Web.Cache.CampusCache.CampusLocation.Country
Rock.Web.Cache.CampusCache.CampusLocation.ImageUrl
Rock.Web.Cache.CampusCache.CampusLocation.Latitude
Rock.Web.Cache.CampusCache.CampusLocation.Longitude
Rock.Web.Cache.CampusCache.CampusLocation.PostalCode
Rock.Web.Cache.CampusCache.CampusLocation.State
Rock.Web.Cache.CampusCache.CampusLocation.Street1
Rock.Web.Cache.CampusCache.CampusLocation.Street2
Rock.Web.Cache.CampusCache.Description
Rock.Web.Cache.CampusCache.IsActive
Rock.Web.Cache.CampusCache.IsSystem
Rock.Web.Cache.CampusCache.LeaderPersonAliasId
Rock.Web.Cache.CampusCache.Location
Rock.Web.Cache.CampusCache.LocationId
Rock.Web.Cache.CampusCache.Name
Rock.Web.Cache.CampusCache.PhoneNumber
Rock.Web.Cache.CampusCache.RawServiceTimes
Rock.Web.Cache.CampusCache.ServiceTime.Time
Rock.Web.Cache.CampusCache.ShortCode
Rock.Web.Cache.CampusCache.TimeZoneId
Rock.Web.Cache.CampusCache.Url
Rock.Web.Cache.ContentChannelCache.ChannelUrl
Rock.Web.Cache.ContentChannelCache.ChildItemsManuallyOrdered
Rock.Web.Cache.ContentChannelCache.ContentChannelTypeId
Rock.Web.Cache.ContentChannelCache.ContentControlType
Rock.Web.Cache.ContentChannelCache.Description
Rock.Web.Cache.ContentChannelCache.EnableRss
Rock.Web.Cache.ContentChannelCache.IconCssClass
Rock.Web.Cache.ContentChannelCache.IsIndexEnabled
Rock.Web.Cache.ContentChannelCache.ItemsManuallyOrdered
Rock.Web.Cache.ContentChannelCache.ItemUrl
Rock.Web.Cache.ContentChannelCache.Name
Rock.Web.Cache.ContentChannelCache.RequiresApproval
Rock.Web.Cache.ContentChannelCache.RootImageDirectory
Rock.Web.Cache.DefinedTypeCache.CategoryId
Rock.Web.Cache.DefinedTypeCache.Description
Rock.Web.Cache.DefinedTypeCache.FieldTypeId
Rock.Web.Cache.DefinedTypeCache.IsSystem
Rock.Web.Cache.DefinedTypeCache.Name
Rock.Web.Cache.DefinedTypeCache.Order
Rock.Web.Cache.DefinedValueCache.DefinedType
Rock.Web.Cache.EntityTypeCache.AssemblyName
Rock.Web.Cache.EntityTypeCache.FriendlyName
Rock.Web.Cache.EntityTypeCache.IndexDocumentUrl
Rock.Web.Cache.EntityTypeCache.IndexResultTemplate
Rock.Web.Cache.EntityTypeCache.IsAnalyticHistoricalSupported
Rock.Web.Cache.EntityTypeCache.IsAnalyticSupported
Rock.Web.Cache.EntityTypeCache.IsEntity
Rock.Web.Cache.EntityTypeCache.IsIndexingEnabled
Rock.Web.Cache.EntityTypeCache.IsIndexingSupported
Rock.Web.Cache.EntityTypeCache.IsSecured
Rock.Web.Cache.EntityTypeCache.LinkUrlLavaTemplate
Rock.Web.Cache.EntityTypeCache.Name
Rock.Web.Cache.EventCalendarCache.Description
Rock.Web.Cache.EventCalendarCache.IconCssClass
Rock.Web.Cache.EventCalendarCache.IsActive
Rock.Web.Cache.EventCalendarCache.IsSystem
Rock.Web.Cache.EventCalendarCache.Name
Rock.Web.Cache.GroupTypeCache.GroupScheduleExclusions
Rock.Web.Cache.GroupTypeCache.Roles
Rock.Web.Cache.GroupTypeRoleCache.CanEdit
Rock.Web.Cache.GroupTypeRoleCache.CanView
Rock.Web.Cache.GroupTypeRoleCache.Guid
Rock.Web.Cache.GroupTypeRoleCache.Id
Rock.Web.Cache.GroupTypeRoleCache.IsLeader
Rock.Web.Cache.GroupTypeRoleCache.MaxCount
Rock.Web.Cache.GroupTypeRoleCache.MinCount
Rock.Web.Cache.GroupTypeRoleCache.Name
Rock.Web.Cache.GroupTypeRoleCache.Order
Rock.Web.Cache.InteractionChannelCache.ChannelEntityId
Rock.Web.Cache.InteractionChannelCache.ChannelTypeMediumValueId
Rock.Web.Cache.InteractionChannelCache.ComponentCacheDuration
Rock.Web.Cache.InteractionChannelCache.ComponentEntityTypeId
Rock.Web.Cache.InteractionChannelCache.InteractionEntityTypeId
Rock.Web.Cache.InteractionChannelCache.Name
Rock.Web.Cache.InteractionChannelCache.RetentionDuration
Rock.Web.Cache.InteractionComponentCache.ChannelId
Rock.Web.Cache.InteractionComponentCache.EntityId
Rock.Web.Cache.InteractionComponentCache.Name
Rock.Web.Cache.LavaShortcodeCache.Description
Rock.Web.Cache.LavaShortcodeCache.Documentation
Rock.Web.Cache.LavaShortcodeCache.EnabledLavaCommands
Rock.Web.Cache.LavaShortcodeCache.IsActive
Rock.Web.Cache.LavaShortcodeCache.IsSystem
Rock.Web.Cache.LavaShortcodeCache.Markup
Rock.Web.Cache.LavaShortcodeCache.Name
Rock.Web.Cache.LavaShortcodeCache.Parameters
Rock.Web.Cache.LavaShortcodeCache.TagName
Rock.Web.Cache.LavaShortcodeCache.TagType
Rock.Web.Cache.LayoutCache.Description
Rock.Web.Cache.LayoutCache.FileName
Rock.Web.Cache.LayoutCache.IsSystem
Rock.Web.Cache.LayoutCache.Name
Rock.Web.Cache.LayoutCache.SiteId
Rock.Web.Cache.NoteTypeCache.CssClass
Rock.Web.Cache.PageCache.AllowIndexing
Rock.Web.Cache.PageCache.BodyCssClass
Rock.Web.Cache.PageCache.BreadCrumbDisplayIcon
Rock.Web.Cache.PageCache.BreadCrumbDisplayName
Rock.Web.Cache.PageCache.BrowserTitle
Rock.Web.Cache.PageCache.Description
Rock.Web.Cache.PageCache.DisplayInNavWhen
Rock.Web.Cache.PageCache.EnableViewState
Rock.Web.Cache.PageCache.HeaderContent
Rock.Web.Cache.PageCache.IconCssClass
Rock.Web.Cache.PageCache.IconFileId
Rock.Web.Cache.PageCache.IncludeAdminFooter
Rock.Web.Cache.PageCache.InternalName
Rock.Web.Cache.PageCache.IsSystem
Rock.Web.Cache.PageCache.KeyWords
Rock.Web.Cache.PageCache.LayoutId
Rock.Web.Cache.PageCache.MenuDisplayChildPages
Rock.Web.Cache.PageCache.MenuDisplayDescription
Rock.Web.Cache.PageCache.MenuDisplayIcon
Rock.Web.Cache.PageCache.Order
Rock.Web.Cache.PageCache.OutputCacheDuration
Rock.Web.Cache.PageCache.PageContexts
Rock.Web.Cache.PageCache.PageDisplayBreadCrumb
Rock.Web.Cache.PageCache.PageDisplayDescription
Rock.Web.Cache.PageCache.PageDisplayIcon
Rock.Web.Cache.PageCache.PageDisplayTitle
Rock.Web.Cache.PageCache.PageRouteInfo.Guid
Rock.Web.Cache.PageCache.PageRouteInfo.Id
Rock.Web.Cache.PageCache.PageRouteInfo.Route
Rock.Web.Cache.PageCache.PageRoutes
Rock.Web.Cache.PageCache.PageTitle
Rock.Web.Cache.PageCache.ParentPageId
Rock.Web.Cache.PageCache.RequiresEncryption
Rock.Web.Cache.RestControllerCache.ClassName
Rock.Web.Cache.RestControllerCache.Name
Rock.Web.Cache.SiteCache.AllowedFrameDomains
Rock.Web.Cache.SiteCache.AllowIndexing
Rock.Web.Cache.SiteCache.ChangePasswordPageId
Rock.Web.Cache.SiteCache.ChangePasswordPageRouteId
Rock.Web.Cache.SiteCache.CommunicationPageId
Rock.Web.Cache.SiteCache.CommunicationPageRouteId
Rock.Web.Cache.SiteCache.DefaultPageId
Rock.Web.Cache.SiteCache.DefaultPageRouteId
Rock.Web.Cache.SiteCache.Description
Rock.Web.Cache.SiteCache.EnabledForShortening
Rock.Web.Cache.SiteCache.EnableMobileRedirect
Rock.Web.Cache.SiteCache.EnablePageViews
Rock.Web.Cache.SiteCache.ErrorPage
Rock.Web.Cache.SiteCache.ExternalUrl
Rock.Web.Cache.SiteCache.FavIconBinaryFileId
Rock.Web.Cache.SiteCache.GoogleAnalyticsCode
Rock.Web.Cache.SiteCache.IndexStartingLocation
Rock.Web.Cache.SiteCache.IsIndexEnabled
Rock.Web.Cache.SiteCache.IsSystem
Rock.Web.Cache.SiteCache.LoginPageId
Rock.Web.Cache.SiteCache.LoginPageRouteId
Rock.Web.Cache.SiteCache.MobilePageId
Rock.Web.Cache.SiteCache.Name
Rock.Web.Cache.SiteCache.PageHeaderContent
Rock.Web.Cache.SiteCache.PageNotFoundPageId
Rock.Web.Cache.SiteCache.PageNotFoundPageRouteId
Rock.Web.Cache.SiteCache.RedirectTablets
Rock.Web.Cache.SiteCache.RegistrationPageId
Rock.Web.Cache.SiteCache.RegistrationPageRouteId
Rock.Web.Cache.SiteCache.RequiresEncryption
Rock.Web.Cache.SiteCache.Theme
Rock.Web.Cache.WorkflowActionFormAttributeCache.AttributeId
Rock.Web.Cache.WorkflowActionFormAttributeCache.HideLabel
Rock.Web.Cache.WorkflowActionFormAttributeCache.IsReadOnly
Rock.Web.Cache.WorkflowActionFormAttributeCache.IsRequired
Rock.Web.Cache.WorkflowActionFormAttributeCache.IsVisible
Rock.Web.Cache.WorkflowActionFormAttributeCache.Order
Rock.Web.Cache.WorkflowActionFormAttributeCache.PostHtml
Rock.Web.Cache.WorkflowActionFormAttributeCache.PreHtml
Rock.Web.Cache.WorkflowActionFormAttributeCache.WorkflowActionFormId
Rock.Web.Cache.WorkflowActionFormCache.ActionAttributeGuid
Rock.Web.Cache.WorkflowActionFormCache.Actions
Rock.Web.Cache.WorkflowActionFormCache.AllowNotes
Rock.Web.Cache.WorkflowActionFormCache.Footer
Rock.Web.Cache.WorkflowActionFormCache.Header
Rock.Web.Cache.WorkflowActionFormCache.IncludeActionsInNotification
Rock.Web.Cache.WorkflowActionFormCache.NotificationSystemEmailId
Rock.Web.Cache.WorkflowActionTypeCache.ActivityTypeId
Rock.Web.Cache.WorkflowActionTypeCache.CriteriaAttributeGuid
Rock.Web.Cache.WorkflowActionTypeCache.CriteriaComparisonType
Rock.Web.Cache.WorkflowActionTypeCache.CriteriaValue
Rock.Web.Cache.WorkflowActionTypeCache.EntityTypeId
Rock.Web.Cache.WorkflowActionTypeCache.IsActionCompletedOnSuccess
Rock.Web.Cache.WorkflowActionTypeCache.IsActivityCompletedOnSuccess
Rock.Web.Cache.WorkflowActionTypeCache.Name
Rock.Web.Cache.WorkflowActionTypeCache.Order
Rock.Web.Cache.WorkflowActionTypeCache.WorkflowFormId
Rock.Web.Cache.WorkflowActivityTypeCache.Description
Rock.Web.Cache.WorkflowActivityTypeCache.IsActivatedWithWorkflow
Rock.Web.Cache.WorkflowActivityTypeCache.IsActive
Rock.Web.Cache.WorkflowActivityTypeCache.Name
Rock.Web.Cache.WorkflowActivityTypeCache.Order
Rock.Web.Cache.WorkflowActivityTypeCache.WorkflowTypeId
Rock.Web.Cache.WorkflowTypeCache.CategoryId
Rock.Web.Cache.WorkflowTypeCache.CompletedWorkflowRetentionPeriod
Rock.Web.Cache.WorkflowTypeCache.Description
Rock.Web.Cache.WorkflowTypeCache.IconCssClass
Rock.Web.Cache.WorkflowTypeCache.IsActive
Rock.Web.Cache.WorkflowTypeCache.IsPersisted
Rock.Web.Cache.WorkflowTypeCache.IsSystem
Rock.Web.Cache.WorkflowTypeCache.LoggingLevel
Rock.Web.Cache.WorkflowTypeCache.LogRetentionPeriod
Rock.Web.Cache.WorkflowTypeCache.Name
Rock.Web.Cache.WorkflowTypeCache.NoActionMessage
Rock.Web.Cache.WorkflowTypeCache.Order
Rock.Web.Cache.WorkflowTypeCache.ProcessingIntervalSeconds
Rock.Web.Cache.WorkflowTypeCache.SummaryViewText
Rock.Web.Cache.WorkflowTypeCache.WorkflowIdPrefix
Rock.Web.Cache.WorkflowTypeCache.WorkTerm
We've updated the way the 'unsubscribe' functionality works. Be sure to look at the generic Unsubscribe HTML in the Email medium (under Admin Tools > Communications > Communication Mediums) and make similar changes to any custom templates you have (replacing Unsubscribe/{%raw%}{{ Person.UrlEncodedKey }}{%endraw%} with Unsubscribe/{%raw%}{{ Person | PersonActionIdentifier:'Unsubscribe' }}{%endraw%}). You will also need to update the Non-HTML Content for the Email Communication Medium (Located in Communications > Communication Mediums; replacing {%raw%}&p={{ Person.UrlEncodedKey }} with &p={{ Person | PersonActionIdentifier:'Unsubscribe' }}{%endraw%} )
Unsubscribe/{%raw%}{{ Person.UrlEncodedKey }}{%endraw%}
Unsubscribe/{%raw%}{{ Person | PersonActionIdentifier:'Unsubscribe' }}{%endraw%}
&p={{ Person.UrlEncodedKey }}
&p={{ Person | PersonActionIdentifier:'Unsubscribe' }}
SELECT ... FROM [Attendance] AS a INNER JOIN [Group] g ON a.GroupId = g.Id
SELECT ... FROM [Attendance] AS a INNER JOIN [AttendanceOccurrence] o ON o.Id = a.OccurrenceId INNER JOIN [Group] g ON a.GroupId = g.Id
{%raw%}{% attendance where:'GroupId == "24"' %}{%endraw%}
{%raw%}{% attendance.GroupId %}{%endraw%}
{%raw%}{% attendanceoccurrence where:'GroupId == "24"' %}{%endraw%}
{%raw%}{% attendanceoccurrence.GroupId %}{%endraw%}
Below is a list of all the code changes made in Rock 8.0 that may potentially affect custom code and/or plugins.
Rock.Web.UI.Cache.*
Rock.Model.Attendance.Group
Rock.Model.Attendance.IsValid
Rock.Model.Attendance.Location
Rock.Model.Attendance.Schedule
Rock.Model.Attendance.SundayDate
Rock.Model.HistoryItem.Changes
Rock.SystemGuid.DefinedType.PROTECT_MY_MINISTRY_PACKAGES
Rock.SystemGuid.DefinedType.BACKGROUND_CHECK_TYPES
The following properties were removed from the Rock.Model.Group class:
Rock.Model.Group
These properties were all moved to a new Rock.Model.GroupSync class to support role-specific group syncing.
Rock.Model.GroupSync
Rock.Cache.CacheCategory.ScheduleExclusions
Rock.Cache.CacheSite.Theme
Rock.Cache.IEntityCache.ForeignGuid
Rock.Cache.IEntityCache.ForeignId
Rock.Cache.IEntityCache.ForeignKey
Rock.Cache.IEntityCache.Guid
Rock.Cache.IEntityCache.Id
Rock.Model.Attendance.DidNotOccur
Rock.Model.Attendance.GroupId
Rock.Model.Attendance.LocationId
Rock.Model.Attendance.ScheduleId
Rock.Checkin.CheckinType
SearchType
Rock.Checkin.KioskGroupType
GroupType()
Rock.Communication.Medium.SMS
FindFromPhoneDefinedValue()
Rock.Data.Model
GetInheritedAttributes()
Rock.Extension.ComponentModel
EntityType
Rock.Financial.ACHPaymentInfo
CurrencyTypeValue
Rock.Financial.CreditCardPaymentInfo
GetCreditCardType()
Rock.Financial.GatewayComponent
SupportedPaymentSchedules
Rock.Financial.SwipePaymentInfo
CreditCardTypeValue
Rock.Financial.TestGateway
Rock.Model.EventItem
Rock.Model.GroupMember
Rock.Model.GroupType
GetInheritedAttributesForQualifier()
Rock.Model.Registrationregistrant
Rock.Model.WorkflowAction
ActionTypeCache
Rock.Model.WorkflowActivity
ActivityTypeCache
Rock.PayFlowPro.Gateway
Rock.Security.BackgroundCheckComponent
SendRequest()
Rock.Security.BackgroundCheck.ProtectMyMinistry
Rock.Web.Cache.BackgroundCheck.ProtectMyMinistry
Rock.Web.Cache.EventCalendarCache
CacheKey
ContextTypesRequired
Rock.Web.UI.RockPage
GetContextEntityTypes()
Rock.Web.UI.Controls.AttributeEditor
ExcludedFieldTypes()
IncludeFieldTypes()
Rock.Web.UI.Controls.CheckinArea
GetCheckinLabelAttributes()
Rock.Web.UI.Controls.DefinedValueField
GetDefinedValue()
Rock.Web.UI.Controls.GradePicker
SelectedGradeValue()
Rock.Web.UI.Controls.NoteContainer
NoteTypes
Rock.Web.UI.Controls.NoteControl
Rock.Workflow.Action.Checkin.CreateLabels
GetLabels()
If you are using the SendGrid Email Transport update the plugin from the RockShop immediately after upgrading to Rock v7.
Page view and email activity data has been moved in Rock v7. While we make a huge effort to not break things during updates the transition of this data to new tables may break custom SQL or code that was querying this data from the PageView and/or CommunicationRecipientActivity tables. All of the data has been transitioned to their new home in the Interactions tables so you won't miss a thing. This should impact only a very small number of organizations who have written custom code or SQL against these few tables. Note that since there could be a large amount of data to convert from the old PageView and CommunicationRecipientActivity tables, a Rock Job called 'Move Data from PageViews and Communication Activity to the new Interaction Tables' will run at 4am after v7 is installed. This job could take an hour or so depending on how much data there is.
The external giving blocks have a new 'Give as Business' option which defaults to 'on'. If you don't want your giving blocks to have the 'Give as Business' option, you'll have to change that manually.
There is a new 'Expiring Credit Card Notices' job which is enabled to run at 7:30 AM on the 1st of every month. It can be disabled manually if needed.
The ZebraPhoto lava command was changed to use the R: (DRAM) location due to long term problems with repetitive writing to the E: (Flash) location. Any labels using ZebraPhoto must also change their Recall Graphic (^XG) command to use the R: location too. https://www.rockrms.com/lava/person#zebraphoto
There is a new 'Database Maintenance' job that is enabled to run at 2:30 AM every day by default. If you SQL database already has a maintenance plan, update the 'Database Maintenance' job and/or your SQL Maintenance Plan to do what you want.
Make sure to enable the Google Static Maps API in your Google API Manager dashboard.
A change was made in how group requirement notifications are sent out. Before it would send to all Roles marked 'IsLeader' of the group, with the ability to provide a list of Role Ids to exclude. This has been changed to use the 'Receive Requirements Notifications' property on the Role. If you have setup jobs to send group requirement emails you will want to ensure that you configure the roles you want to receive these emails to have the 'Receive Requirements Notifications' checked.
Staff and Staff-Like roles will be given Edit access to the following group types if those group types do not already have specific 'Edit' roles defined. This is so that staff can add new groups of those types.
ContentChannelView has been updated to not support legacy Lava syntax for accessing global attributes. To enable this, a new "Enable Legacy Global Attribute Lava" block setting needs to be set to true (which negatively affect performance of this block).
Group Attributes now enforce security. Edit each Group Type in General Settings > Group Types, and make sure to set the security on each of the Group Attributes so they can be edited by the appropriate team.
iScroll.js is now included in the RockLibs.js bundle. If you have a custom blocks (i.e. check-in) that is loading iScroll.js, this is no longer needed.
This release fixes a bug where workflow activities marked as inactive were still being processed. If you have any activities where 'Is Active' is not checked they will no longer run even if you use the 'Activate Workflow Activity' action. This action activates an instance of an activity. The activity type however, must be active for this to occur.
Below is a list of all the code changes made in Rock v7 that may potentially affect custom code and/or plugins.
People without birth date will no longer be able to check-in to groups that have an age range requirement. This behavior can be changed by editing the 'Unattended Check-in' workflow, selecting the 'Person Search' activity, then the 'Filter Groups By Age' action, and un-checking the new 'Age Required' option.
Only members of the 'RSR - Data Integrity Worker' will be able to complete person merges. Everyone else will only be able to request merges (new functionality). This can be modified by adding other security roles to have edit access to the merge block.
Security was adjusted on the Website Ads and Bulletin Content Channels to give the 'RSR - Staff Worker' and 'RSR - Staff Like Worker' View/Edit rights.
The regular release notes detail changes that are important to admins and users. There is also a pre-alpha release notes which covers stuff in the latest pre-alpha-release branch.
Rock Mobile Release Notes