public static SecuritySystemRole AddObjectAccessPermissionFluent <T>(this SecuritySystemRole securityRole, SecurityOperationsFluentExtension securityOperation, string criteria)
        {
            if (String.IsNullOrEmpty(criteria))
            {
                throw new ArgumentNullException("SecurityOperations or criteria arguments is null or empty");
            }

            if (typeof(T).IsInterface)
            {
                foreach (var type in GetListTypesFromInterface(typeof(T), securityRole.GetType()))
                {
                    securityRole.AddObjectAccessPermission(type, criteria, GetDescriptionAttribute(securityOperation));
                }

                return(securityRole);
            }

            securityRole.AddObjectAccessPermission <T>(criteria, GetDescriptionAttribute(securityOperation));
            return(securityRole);
        }
Exemplo n.º 2
0
        private SecuritySystemRole CreateDefaultRole()
        {
            SecuritySystemRole defaultRole = ObjectSpace.FindObject <SecuritySystemRole>(new BinaryOperator("Name", "Default"));

            if (defaultRole == null)
            {
                defaultRole      = ObjectSpace.CreateObject <SecuritySystemRole>();
                defaultRole.Name = "Default";

                defaultRole.AddObjectAccessPermission <SecuritySystemUser>("[Oid] = CurrentUserId()", SecurityOperations.ReadOnlyAccess);
                defaultRole.AddMemberAccessPermission <SecuritySystemUser>("ChangePasswordOnFirstLogon", SecurityOperations.Write);
                defaultRole.AddMemberAccessPermission <SecuritySystemUser>("StoredPassword", SecurityOperations.Write);
                defaultRole.SetTypePermissionsRecursively <SecuritySystemRole>(SecurityOperations.Read, SecuritySystemModifier.Allow);
                defaultRole.SetTypePermissionsRecursively <AuditDataItemPersistent>(SecurityOperations.CRUDAccess, SecuritySystemModifier.Allow);
            }
            return(defaultRole);
        }