/// <summary> /// Initializes a new instance of the <see cref="SystemRoleRelationship"/> class. /// </summary> /// <param name="grantedSystemRole">The granted system role.</param> /// <param name="systemRole">The system role.</param> protected internal SystemRoleRelationship( SystemRole grantedSystemRole, SystemRole systemRole ) { _grantedSystemRole = grantedSystemRole; _systemRole = systemRole; }
/// <summary> /// Initializes a new instance of the <see cref="SystemRoleRelationship"/> class. /// </summary> /// <param name="grantedSystemRole">The granted system role.</param> /// <param name="systemRole">The system role.</param> protected internal SystemRoleRelationship( SystemRole grantedSystemRole, SystemRole systemRole) { _grantedSystemRole = grantedSystemRole; _systemRole = systemRole; }
/// <summary> /// Initializes a new instance of the <see cref="SystemAccountRole"/> class. /// </summary> /// <param name="systemAccount">The system account.</param> /// <param name="systemRole">The system role.</param> protected internal SystemAccountRole(SystemAccount systemAccount, SystemRole systemRole) { Check.IsNotNull(systemAccount, "System account is required."); Check.IsNotNull(systemRole, "System role is required."); _systemAccount = systemAccount; _systemRole = systemRole; }
/// <summary> /// Initializes a new instance of the <see cref="SystemRolePermission"/> class. /// </summary> /// <param name="systemRole">The system role.</param> /// <param name="systemPermission">The system permission.</param> protected internal SystemRolePermission(SystemRole systemRole, SystemPermission systemPermission) { Check.IsNotNull(systemRole, "System role is required."); Check.IsNotNull(systemPermission, "System permission is required."); _systemRole = systemRole; _systemPermission = systemPermission; }
/// <summary> /// Initializes a new instance of the <see cref="SystemRolePermission"/> class. /// </summary> /// <param name="systemRole">The system role.</param> /// <param name="systemPermission">The system permission.</param> protected internal SystemRolePermission( SystemRole systemRole, SystemPermission systemPermission ) { Check.IsNotNull ( systemRole, "System role is required." ); Check.IsNotNull ( systemPermission, "System permission is required." ); _systemRole = systemRole; _systemPermission = systemPermission; }
/// <summary> /// Initializes a new instance of the <see cref="SystemAccountRole"/> class. /// </summary> /// <param name="systemAccount">The system account.</param> /// <param name="systemRole">The system role.</param> protected internal SystemAccountRole( SystemAccount systemAccount, SystemRole systemRole ) { Check.IsNotNull ( systemAccount, "System account is required." ); Check.IsNotNull ( systemRole, "System role is required." ); _systemAccount = systemAccount; _systemRole = systemRole; }
/// <summary> /// Revokes the system role. /// </summary> /// <param name="systemRole">The system role.</param> public virtual void RevokeSystemRole(SystemRole systemRole) { Check.IsNotNull(systemRole, "System role is required."); var systemRoleRelationship = _grantedSystemRoleRelationships.FirstOrDefault(sr => sr.GrantedSystemRole.Key == systemRole.Key); if (systemRoleRelationship != null) { _grantedSystemRoleRelationships.Remove(systemRoleRelationship); NotifyItemRemoved(() => GrantedSystemRoleRelationships, systemRoleRelationship); } }
/// <summary> /// Revokes the system role. /// </summary> /// <param name="systemRole">The system role.</param> public virtual void RevokeSystemRole(SystemRole systemRole) { Check.IsNotNull(systemRole, "System role is required."); var existingSystemRole = _systemAccountRoles.FirstOrDefault(sar => sar.SystemRole.Key == systemRole.Key); if (existingSystemRole != null) { _systemAccountRoles.Remove(existingSystemRole); NotifyItemRemoved(() => SystemAccountRoles, existingSystemRole); } }
/// <summary> /// Grants the system role. /// </summary> /// <remarks> /// Grants the given role to this SystemRole. Roles can be hierarchical enabling adminstrators /// to organize the authorization system around sets of grouped permissions. /// </remarks> /// <param name="systemRole">The role to be granted.</param> public virtual void GrantSystemRole(SystemRole systemRole) { Check.IsNotNull(systemRole, "System role is required."); DomainRuleEngine.CreateRuleEngine <SystemRole, SystemRole> (this, () => GrantSystemRole) .WithContext(systemRole) .Execute( () => { var systemRoleRelationship = new SystemRoleRelationship(systemRole, this); _grantedSystemRoleRelationships.Add(systemRoleRelationship); NotifyItemAdded(() => GrantedSystemRoleRelationships, systemRoleRelationship); } ); }
/// <summary> /// Grants the given role to the system account. /// </summary> /// <param name = "systemRole">The role to be granted</param> public virtual void GrantSystemRole(SystemRole systemRole) { Check.IsNotNull(systemRole, "System role is required."); DomainRuleEngine.CreateRuleEngine <SystemAccount, SystemRole>(this, () => GrantSystemRole) .WithContext(systemRole) .Execute( () => { var systemAccountRole = new SystemAccountRole(this, systemRole); _systemAccountRoles.Add(systemAccountRole); NotifyItemAdded(() => SystemAccountRoles, systemAccountRole); } ); }
/// <summary> /// Creates the system role. /// </summary> /// <param name="name">The name.</param> /// <param name="description">The description.</param> /// <param name="systemRoleType">Type of the system role.</param> /// <returns> /// A SystemRole /// </returns> public SystemRole CreateSystemRole(string name, string description, SystemRoleType systemRoleType) { Check.IsNotNullOrWhitespace(name, "Name is required."); Check.IsNotNull(systemRoleType, "System role type is required."); SystemRole systemRole; var existingSystemRole = _systemRoleRepository.GetByName(name); if (existingSystemRole != null) { systemRole = existingSystemRole; } else { systemRole = new SystemRole(name, description, systemRoleType); _systemRoleRepository.MakePersistent(systemRole); } return(systemRole); }
/// <summary> /// Creates the system role. /// </summary> /// <param name="name">The name.</param> /// <param name="description">The description.</param> /// <param name="systemRoleType">Type of the system role.</param> /// <returns> /// A SystemRole /// </returns> public SystemRole CreateSystemRole( string name, string description, SystemRoleType systemRoleType ) { Check.IsNotNullOrWhitespace(name, "Name is required."); Check.IsNotNull(systemRoleType, "System role type is required."); SystemRole systemRole; var existingSystemRole = _systemRoleRepository.GetByName( name ); if (existingSystemRole != null) { systemRole = existingSystemRole; } else { systemRole = new SystemRole( name, description, systemRoleType ); _systemRoleRepository.MakePersistent( systemRole ); } return systemRole; }
/// <summary> /// Remove task role. /// </summary> /// <param name="taskRole"> /// The task role. /// </param> public virtual void RemoveTaskRole( SystemRole taskRole ) { RemoveSystemRole ( taskRole, SystemRoleType.Task ); }
/// <summary> /// Destroys the system role. /// </summary> /// <param name="systemRole">The system role.</param> public void DestroySystemRole(SystemRole systemRole) { Check.IsNotNull(systemRole, "System role is required"); _systemRoleRepository.MakeTransient(systemRole); }
/// <summary> /// Revokes the system role. /// </summary> /// <param name="systemRole">The system role.</param> public virtual void RevokeSystemRole(SystemRole systemRole) { Check.IsNotNull ( systemRole, "System role is required." ); var existingSystemRole = _systemAccountRoles.FirstOrDefault ( sar => sar.SystemRole.Key == systemRole.Key ); if ( existingSystemRole != null ) { _systemAccountRoles.Remove ( existingSystemRole ); NotifyItemRemoved ( () => SystemAccountRoles, existingSystemRole ); } }
/// <summary> /// Grants the given role to the system account. /// </summary> /// <param name = "systemRole">The role to be granted</param> public virtual void GrantSystemRole( SystemRole systemRole ) { Check.IsNotNull(systemRole, "System role is required."); DomainRuleEngine.CreateRuleEngine<SystemAccount, SystemRole>(this, () => GrantSystemRole) .WithContext(systemRole) .Execute( () => { var systemAccountRole = new SystemAccountRole(this, systemRole); _systemAccountRoles.Add(systemAccountRole); NotifyItemAdded ( () => SystemAccountRoles, systemAccountRole ); } ); }
/// <summary> /// Initializes a new instance of the <see cref="StaffSystemRole"/> class. /// </summary> /// <param name="systemRole">The system role.</param> public StaffSystemRole( SystemRole systemRole ) { Check.IsNotNull ( systemRole, () => SystemRole ); _systemRole = systemRole; }
/// <summary> /// Removes the system role. /// </summary> /// <param name="systemRole">The system role.</param> /// <param name="systemRoleType">Type of the system role.</param> private void RemoveSystemRole( SystemRole systemRole, SystemRoleType systemRoleType ) { Check.IsNotNull ( systemRole, "System role is required." ); if ( systemRole.SystemRoleType != systemRoleType ) { throw new ArgumentException ( string.Format ( ( string )"The type of the role is not a {0} role. ", ( object )systemRoleType ) ); } StaffSystemRole existingSystemRole = ( from sa in _systemRoles where sa.SystemRole.Key == systemRole.Key select sa ).FirstOrDefault (); if ( existingSystemRole != null ) { _systemRoles.Remove ( existingSystemRole ); } NotifyItemRemoved ( () => SystemRoles, existingSystemRole ); }
/// <summary> /// Checks the role assignment. /// </summary> /// <param name="systemRole">The system role.</param> /// <param name="systemRoleType">Type of the system role.</param> private void CheckRoleAssignment( SystemRole systemRole, SystemRoleType systemRoleType ) { Check.IsNotNull ( systemRole, "System role is required." ); if ( systemRole.SystemRoleType != systemRoleType ) { throw new ArgumentException ( string.Format ( ( string )"The type of the role is not a {0} role. ", ( object )systemRoleType ) ); } StaffSystemRole existingStaffSystemRole = ( from sr in _systemRoles where sr.SystemRole.Key == systemRole.Key select sr ).FirstOrDefault (); if ( existingStaffSystemRole != null ) { throw new InvalidOperationException("The same has already been Assigned."); } }
/// <summary> /// Assign task role. /// </summary> /// <param name="taskRole"> /// The task role. /// </param> public virtual void AssignTaskRole( SystemRole taskRole ) { AssignSystemRole ( taskRole, SystemRoleType.Task ); }
/// <summary> /// Grants the system role. /// </summary> /// <remarks> /// Grants the given role to this SystemRole. Roles can be hierarchical enabling adminstrators /// to organize the authorization system around sets of grouped permissions. /// </remarks> /// <param name="systemRole">The role to be granted.</param> public virtual void GrantSystemRole( SystemRole systemRole ) { Check.IsNotNull ( systemRole, "System role is required." ); DomainRuleEngine.CreateRuleEngine<SystemRole, SystemRole> ( this, () => GrantSystemRole ) .WithContext (systemRole ) .Execute ( () => { var systemRoleRelationship = new SystemRoleRelationship ( systemRole, this ); _grantedSystemRoleRelationships.Add ( systemRoleRelationship ); NotifyItemAdded ( () => GrantedSystemRoleRelationships, systemRoleRelationship ); } ); }
/// <summary> /// Destroys the system role. /// </summary> /// <param name="systemRole">The system role.</param> public void DestroySystemRole( SystemRole systemRole ) { Check.IsNotNull(systemRole, "System role is required"); _systemRoleRepository.MakeTransient ( systemRole ); }
/// <summary> /// Revise job function role. /// </summary> /// <param name="jobFunctionRole"> /// The job function role. /// </param> public virtual void ReviseJobFunctionRole( SystemRole jobFunctionRole ) { CheckRoleAssignment ( jobFunctionRole, SystemRoleType.JobFunction ); var existingJobFunctionRoles = ( from sr in _systemRoles where sr.SystemRole.SystemRoleType == SystemRoleType.JobFunction select sr ).ToList (); foreach ( var existingJobFunctionRole in existingJobFunctionRoles ) { _systemRoles.Remove ( existingJobFunctionRole ); } var staffSystemRole = new StaffSystemRole ( jobFunctionRole ) { Staff = this }; _systemRoles.Add ( staffSystemRole ); NotifyItemAdded ( () => SystemRoles, staffSystemRole ); }
/// <summary> /// Revokes the system role. /// </summary> /// <param name="systemRole">The system role.</param> public virtual void RevokeSystemRole( SystemRole systemRole ) { Check.IsNotNull ( systemRole, "System role is required." ); var systemRoleRelationship = _grantedSystemRoleRelationships.FirstOrDefault ( sr => sr.GrantedSystemRole.Key == systemRole.Key ); if (systemRoleRelationship != null) { _grantedSystemRoleRelationships.Remove ( systemRoleRelationship ); NotifyItemRemoved ( () => GrantedSystemRoleRelationships, systemRoleRelationship ); } }
/// <summary> /// Assign system role. /// </summary> /// <param name="systemRole"> /// The system role. /// </param> /// <param name="systemRoleType"> /// The system role type. /// </param> private void AssignSystemRole( SystemRole systemRole, SystemRoleType systemRoleType ) { CheckRoleAssignment ( systemRole, systemRoleType ); var staffSystemRole = new StaffSystemRole ( systemRole ) { Staff = this }; _systemRoles.Add ( staffSystemRole ); NotifyItemAdded ( () => SystemRoles, staffSystemRole ); }