Esempio n. 1
0
        /// <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);
            }
                );
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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 );
                        }
                );
        }
Esempio n. 4
0
        /// <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;
        }