A problem of applying rules by decorating objects using attributes is that there is no concept of re-usability. For example, we want NationalAdmins, StateAdmins, and Managers to be have all permissions over everything. Also permissions for my customer, customer_address, customer_emails, etc. are all similar. Normally you should apply all authorization attributes to every part of the model.
SAF provides an ImportAuthorizationAttribute that solves this problem.
public class AuthorizationMetadata { [Grant...] [Grant...] public class AdminGroup { } [Deny...] [Deny...] [Deny...] public class RestrictedWriteGroup {} [Grant...] public class TitleViewersGroup {} }
You can use AuthorizationMetadata class to centralize all your authorization rules. You can then use it in your model as follows:
[ImportAuthorization(SourceType=AuthorizationMetadata.AdminGroup)] public partial class Model { }
What else do you want?
Leave a Reply