/// <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> /// Clones the current system role. /// </summary> /// <returns>The cloned system role.</returns> public virtual SystemRole Clone() { var systemRoleFactory = IoC.CurrentContainer.Resolve <ISystemRoleFactory> (); var clonedSystemRole = systemRoleFactory.CreateSystemRole("Copy of " + Name, Description, SystemRoleType); foreach (var permissionLink in _grantedSystemPermissions) { var systemRolePermission = new SystemRolePermission(clonedSystemRole, permissionLink.SystemPermission); clonedSystemRole._grantedSystemPermissions.Add(systemRolePermission); } foreach (var roleLink in _grantedSystemRoleRelationships) { var systemRoleRelationship = new SystemRoleRelationship(roleLink.GrantedSystemRole, clonedSystemRole); clonedSystemRole._grantedSystemRoleRelationships.Add(systemRoleRelationship); } return(clonedSystemRole); }
/// <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> /// Clones the current system role. /// </summary> /// <returns>The cloned system role.</returns> public virtual SystemRole Clone() { var systemRoleFactory = IoC.CurrentContainer.Resolve<ISystemRoleFactory> (); var clonedSystemRole = systemRoleFactory.CreateSystemRole ( "Copy of " + Name, Description, SystemRoleType ); foreach ( var permissionLink in _grantedSystemPermissions) { var systemRolePermission = new SystemRolePermission ( clonedSystemRole, permissionLink.SystemPermission ); clonedSystemRole._grantedSystemPermissions.Add ( systemRolePermission ); } foreach ( var roleLink in _grantedSystemRoleRelationships) { var systemRoleRelationship = new SystemRoleRelationship ( roleLink.GrantedSystemRole, clonedSystemRole ); clonedSystemRole._grantedSystemRoleRelationships.Add(systemRoleRelationship); } return clonedSystemRole; }