Example #1
0
        public static void OnLoad1Step(IUserSecurity form, EventArgs args)
        {
            IUser user = form.CurrentEntity as IUser;
            IOwnerSecurityProfile profile = user.GetDefaultSecurityProfile();

            form.lupFLSProfile.LookupResultValue = profile;
        }
        internal static string OwnerText(this IUserSecurity userSecurity)
        {
            if (userSecurity == null)
            {
                return(string.Empty);
            }

            return($"{userSecurity.FirstName} {userSecurity.LastName} ({userSecurity.SamAccountName.Trim()})");
        }
        public static void btnSave_OnClickStep(IUserSecurity form, EventArgs args)
        {
            IUser user = form.CurrentEntity as IUser;
            IOwnerSecurityProfile securityProfile = form.lupFLSProfile.LookupResultValue as IOwnerSecurityProfile;

            user.UpdateDefaultSecurityProfile(securityProfile);

            user.Save();
        }
Example #4
0
 public BasicAuthenticationHandler(
     IOptionsMonitor <AuthenticationSchemeOptions> options,
     ILoggerFactory logger,
     UrlEncoder encoder,
     ISystemClock clock,
     IUserSecurity userService)
     : base(options, logger, encoder, clock)
 {
     _userService = userService;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AccountController" /> class.
 /// </summary>
 /// <param name="catalogClient">The catalog client.</param>
 /// <param name="userClient">The user client.</param>
 /// <param name="countryClient">The country client.</param>
 /// <param name="orderClient">The order client.</param>
 /// <param name="settingsClient">The settings client.</param>
 /// <param name="webSecurity">The web security.</param>
 /// <param name="oAuthSecurity">The o authentication security.</param>
 /// <param name="orderService">The order service.</param>
 public AccountController(CatalogClient catalogClient,
                          UserClient userClient,
                          CountryClient countryClient,
                          OrderClient orderClient,
                          SettingsClient settingsClient,
                          IUserSecurity webSecurity,
                          IOAuthWebSecurity oAuthSecurity,
                          IOrderService orderService)
 {
     _catalogClient = catalogClient;
     _userClient = userClient;
     _countryClient = countryClient;
     _orderClient = orderClient;
     _settingsClient = settingsClient;
     _webSecurity = webSecurity;
     _oAuthSecurity = oAuthSecurity;
     _orderService = orderService;
 }
Example #6
0
        public async Task <string> Delete(long id, IUserSecurity user)
        {
            var type     = _buildSpecificationType == BuildSpecificationTypeConstant.OperatingSystem ? "OS" : "application";
            var toDelete = await Ctx.BuildSpecifications
                           .Include(p => p.Nodes)
                           .Include(p => p.Children)
                           .ById(_buildSpecificationType, id);

            if (toDelete == null)
            {
                return($"The {type} spec not found.");
            }

            if (toDelete.OwnerEmployeeId != user.EmployeeId)
            {
                return($"You are not authorized to delete this {type} spec.");
            }

            if (_buildSpecificationType == BuildSpecificationTypeConstant.Application && toDelete.Nodes.Any())
            {
                return
                    ("Some nodes have been assigned to this application spec and must be removed before allowing delete to occur.");
            }

            if (_buildSpecificationType == BuildSpecificationTypeConstant.OperatingSystem && toDelete.Children.Any())
            {
                return
                    ("Some application specs use this OS spec and must be changed before allowing the delete to occur.");
            }

            Ctx.SoftwareComponentEnvironments.RemoveRange(Ctx.SoftwareComponentEnvironments.Where(p => p.SoftwareComponent.BuildSpecificationId == toDelete.Id));
            Ctx.SoftwareComponents.RemoveRange(Ctx.SoftwareComponents.ForBuildSpec(toDelete.Id));
            Ctx.Justifications.RemoveRange(Ctx.Justifications.ForBuildSpec(toDelete.Id));
            Ctx.Ports.RemoveRange(Ctx.Ports.ForBuildSpec(toDelete.Id));
            Ctx.BuildSpecifications.Remove(toDelete);
            await Ctx.SaveChangesAsync();

            return(null);
        }
Example #7
0
 public AspNetBasicSecurityManager(IUserIdentityProvider identityProvider, IUserSecurity userSecurity)
     : this(identityProvider, userSecurity, "_PAS_")
 {
 }
Example #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SecurityService"/> class.
        /// </summary>
        /// <param name="repository">The repository.</param>
        /// <param name="membershipProvider">The membership provider.</param>
		public SecurityService(ISecurityRepository repository, IUserSecurity membershipProvider)
		{
			SecurityRepository = repository;
			MembershipProvider = membershipProvider;
		} 
 public static void OnLoad1Step( IUserSecurity form,  EventArgs args)
 {
     IUser user = form.CurrentEntity as IUser;
        	IOwnerSecurityProfile profile =	user.GetDefaultSecurityProfile();
     form.lupFLSProfile.LookupResultValue = profile;
 }
        public async Task <NodeSearchResults> Search(PlatformConstant[] platform,
                                                     int[] environment, PciScopeConstant[] pciScope,
                                                     NodeComplianceSearchTypeConstant[] compliance, NodeSearchTypeConstant searchType, string query,
                                                     bool hideProductExclusions, IUserSecurity employeeSecurity, int pageIndex, bool showButtons)
        {
            var       valid = !string.IsNullOrWhiteSpace(query);
            const int take  = 30;
            var       q     = _ctx.Nodes.AsNoTracking().Active();

            if (hideProductExclusions)
            {
                q = q.ProductIsNotExlcuded();
            }

            if (platform?.Length > 0)
            {
                q = q.ByPlatforms(platform);

                valid = true;
            }

            if (environment?.Length > 0)
            {
                q     = q.ForEnvironments(environment);
                valid = true;
            }

            if (pciScope?.Length > 0)
            {
                q     = q.ByPciScopes(pciScope);
                valid = true;
            }

            var complianceFlags = compliance.ConvertToFlag();

            if (complianceFlags.HasValue)
            {
                var cf = complianceFlags.Value;

                var unassigned         = cf.HasFlag(NodeComplianceSearchTypeConstant.Unassigned);
                var assigned           = cf.HasFlag(NodeComplianceSearchTypeConstant.Assigned);
                var complianceStatuses = new List <ComplianceStatusConstant>();

                if (cf.HasFlag(NodeComplianceSearchTypeConstant.NotReporting))
                {
                    complianceStatuses.Add(ComplianceStatusConstant.NotFound);
                }
                if (cf.HasFlag(NodeComplianceSearchTypeConstant.Failing))
                {
                    complianceStatuses.Add(ComplianceStatusConstant.Failed);
                }
                if (cf.HasFlag(NodeComplianceSearchTypeConstant.Passing))
                {
                    complianceStatuses.Add(ComplianceStatusConstant.Succeeded);
                }

                if (complianceStatuses.Any())
                {
                    assigned = true;
                    q        = q.ByComplianceStatuses(complianceStatuses.ToArray());
                }

                if (unassigned && !assigned)
                {
                    q = q.Unassigned();
                }
                else if (assigned && !unassigned)
                {
                    q = q.Assigned();
                }

                valid = true;
            }

            switch (searchType)
            {
            case NodeSearchTypeConstant.Mine:
                if (!string.IsNullOrWhiteSpace(query))
                {
                    q = q.Where(p => EF.Functions.Like(p.Fqdn, $"{query}%"));
                }
                q     = q.Where(p => p.OwnerEmployeeId == employeeSecurity.EmployeeId).OrderBy(p => p.Fqdn);
                valid = true;
                break;

            case NodeSearchTypeConstant.Fqdn:
                if (!string.IsNullOrWhiteSpace(query))
                {
                    q = q.Where(p => EF.Functions.Like(p.Fqdn, $"{query}%"));
                }

                q = q.OrderBy(p => p.Fqdn);
                break;

            case NodeSearchTypeConstant.Owner:
                if (!string.IsNullOrWhiteSpace(query))
                {
                    var empIds = await q.Select(p => p.Owner).Search(query).Select(p => p.Id).Distinct()
                                 .ToArrayAsync();

                    q = q.Where(p => empIds.Contains(p.OwnerEmployeeId));
                }

                q = q.OrderBy(p => p.Owner.PreferredName ?? p.Owner.FirstName).ThenBy(p => p.Owner.LastName)
                    .ThenBy(p => p.Fqdn);
                break;

            case NodeSearchTypeConstant.Director:
                if (!string.IsNullOrWhiteSpace(query))
                {
                    var empIds =
                        (await q.Where(p => p.Owner.ReportingDirectorId != null)
                         .Select(p => p.Owner.ReportingDirector).Search(query).Select(p => p.Id).Distinct()
                         .ToArrayAsync()).Cast <long?>().ToArray();
                    q = q.Where(p => empIds.Contains(p.Owner.ReportingDirectorId));
                }

                q = q.OrderBy(p => p.Owner.PreferredName ?? p.Owner.FirstName).ThenBy(p => p.Owner.LastName)
                    .ThenBy(p => p.Fqdn);
                break;

            case NodeSearchTypeConstant.Product:
                if (!string.IsNullOrWhiteSpace(query))
                {
                    var sw = $"{query}%";
                    q = q.Where(p =>
                                EF.Functions.Like(p.Product.Name, sw) || EF.Functions.Like(p.ProductCode, sw) ||
                                EF.Functions.Like(p.Product.Name, sw) || EF.Functions.Like(p.ProductCode, sw) ||
                                EF.Functions.Like(p.Function.Name, sw));
                }

                q = q.OrderBy(p => p.Product.Name).ThenBy(p => p.Function.Name).ThenBy(p => p.Fqdn);
                break;

            case NodeSearchTypeConstant.OsSpec:
                q = q.Where(p => p.BuildSpecificationId.HasValue);
                if (!string.IsNullOrWhiteSpace(query))
                {
                    var contains = $"%{query}%";
                    q = q.Where(p => EF.Functions.Like(p.BuildSpecification.Parent.Name, contains));
                }

                q = q.OrderBy(p => p.BuildSpecification.Name).ThenBy(p => p.Fqdn);
                break;

            case NodeSearchTypeConstant.AppSpec:
                q = q.Where(p => p.BuildSpecificationId.HasValue);
                if (!string.IsNullOrWhiteSpace(query))
                {
                    var contains = $"%{query}%";
                    q = q.Where(p => EF.Functions.Like(p.BuildSpecification.Name, contains));
                }

                q = q.OrderBy(p => p.BuildSpecification.Name).ThenBy(p => p.Fqdn);
                break;

            default:
                throw new ArgumentException(@"NodeSearchType not supported.", nameof(searchType));
            }

            if (!valid)
            {
                q = q.Where(p => 1 == 2);
            }

            var matchCount = await q.CountAsync();

            var skip    = take * pageIndex;
            var results = matchCount > 0 ? await ToResult(q.Skip(skip).Take(take), showButtons) : new NodeSearchResult[0];

            var displayCount = skip + results.Length;

            return(new NodeSearchResults(results, matchCount, displayCount));
        }
Example #11
0
 public Welcome(IUserSecurity userSecurity)
 {
     FirstName = userSecurity.FirstName;
     LastName  = userSecurity.LastName;
 }
Example #12
0
File: User.cs Project: NDWX/PugFX
 public User(IUserIdentity credentials, IUserSecurity userSecurity)
 {
     this.identity = credentials;
     this.userSecurity = userSecurity;
 }
Example #13
0
 protected SecurityManager(IUserIdentityProvider userIdentityProvider, IUserSecurity userSecurity)
 {
     this.userIdentityProvider = userIdentityProvider;
     this.userSecurity = userSecurity;
 }
Example #14
0
 public AspNetBasicSecurityManager(IUserIdentityProvider identityProvider, IUserSecurity userSecurity, string stateKeyPrefix)
     : base(identityProvider, userSecurity)
 {
     this.stateKeyPrefix += stateKeyPrefix;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AuthenticationService"/> class.
 /// </summary>
 /// <param name="repository">The repository.</param>
 /// <param name="membershipProvider">The membership provider.</param>
 public AuthenticationService(ISecurityRepository repository, IUserSecurity membershipProvider)
 {
     MembershipProvider = membershipProvider;
     SecurityRepository = repository;
 }
Example #16
0
        public async Task <TSearchResult[]> GetSearchResults(SpecSearchTypeConstant type, string query,
                                                             IUserSecurity employeeSecurity)
        {
            var q = Ctx.BuildSpecifications.AsNoTracking().OfBuildSpecType(_buildSpecificationType);

            switch (type)
            {
            case SpecSearchTypeConstant.Mine:
                if (employeeSecurity == null)
                {
                    q = q.Where(p => 1 == 2);
                }
                else
                {
                    var contains = $"%{query}%";
                    q = q.Where(p => p.OwnerEmployeeId == employeeSecurity.EmployeeId);
                    if (!string.IsNullOrWhiteSpace(query))
                    {
                        q = q.Where(p => EF.Functions.Like(p.Name, contains)).OrderBy(p => p.Name);
                    }
                }

                break;

            case SpecSearchTypeConstant.Name:
                if (employeeSecurity == null)
                {
                    q = q.Where(p => 1 == 2);
                }
                else
                {
                    var contains = $"%{query}%";
                    q = q.Where(p => EF.Functions.Like(p.Name, contains)).OrderBy(p => p.Name);
                }

                break;

            case SpecSearchTypeConstant.Owner:
                if (string.IsNullOrWhiteSpace(query))
                {
                    q = q.Where(p => 1 == 2);
                }
                else
                {
                    var empIds = Ctx.Employees.Search(query).Select(p => p.Id).ToArray();
                    q = q.Where(p => empIds.Contains(p.OwnerEmployeeId)).OrderBy(p => p.Owner.FirstName)
                        .ThenBy(p => p.Owner.LastName).ThenBy(p => p.Name);
                }

                break;

            case SpecSearchTypeConstant.OsSpec:
                if (string.IsNullOrWhiteSpace(query) || _buildSpecificationType == BuildSpecificationTypeConstant.OperatingSystem)
                {
                    q = q.Where(p => 1 == 2);
                }
                else
                {
                    var sw = $"{query}%";
                    q = q.Where(p => EF.Functions.Like(p.Parent.Name, sw));
                }

                break;

            default:
                throw new ArgumentException(@"SpecSearchTypeConstant not supported.", nameof(type));
            }

            return(await SearchResultMapper(q));
        }
Example #17
0
        public async Task <long> Clone(long cloneId, IUserSecurity employeeSecurity)
        {
            var toClone = await Ctx.BuildSpecifications
                          .Include(p => p.Justifications)
                          .Include(p => p.Ports)
                          .Include(p => p.SoftwareComponents)
                          .ById(_buildSpecificationType, cloneId);

            if (toClone == null)
            {
                throw new ArgumentException(
                          $@"The id passed in ({
                            cloneId
                        }) is not a valid id for a BuildSpec of Type {_buildSpecificationType}",
                          nameof(cloneId));
            }

            var newSpec = new BuildSpecification
            {
                BuildSpecificationType = _buildSpecificationType,
                Name     = $"Clone {Guid.NewGuid()}",
                WikiLink = toClone.WikiLink,
                Overview = toClone.Overview,
                OperatingSystemVersion = toClone.OperatingSystemVersion,
                OperatingSystemName    = toClone.OperatingSystemName,
                OwnerEmployeeId        = employeeSecurity.EmployeeId,
                ParentId      = toClone.ParentId,
                Platform      = toClone.Platform,
                RunningCoreOs = toClone.RunningCoreOs
            };

            Ctx.BuildSpecifications.Add(newSpec);
            await Ctx.SaveChangesAsync();

            var id      = newSpec.Id;
            var jidDict = new Dictionary <long, Justification>();

            foreach (var justification in toClone.Justifications)
            {
                var newJust = Ctx.Justifications.Add(new Justification
                {
                    BuildSpecificationId = id,
                    Color             = justification.Color,
                    JustificationText = justification.JustificationText,
                    JustificationType = justification.JustificationType
                }).Entity;
                jidDict.Add(justification.Id, newJust);
            }

            await Ctx.SaveChangesAsync();

            foreach (var port in toClone.Ports)
            {
                var newPort = new Port
                {
                    BuildSpecificationId = id,
                    From       = port.From,
                    To         = port.To,
                    IsExternal = port.IsExternal,
                    PortType   = port.PortType
                };
                if (port.Justification != null)
                {
                    newPort.JustificationId = jidDict[port.Justification.Id].Id;
                }

                Ctx.Ports.Add(newPort);
            }

            var sidDict = new Dictionary <long, SoftwareComponent>();

            foreach (var software in toClone.SoftwareComponents)
            {
                var newSoftware = new SoftwareComponent
                {
                    BuildSpecificationId = id,
                    JustificationType    = software.JustificationType,
                    Name        = software.Name,
                    Description = software.Description,
                    NonCore     = software.NonCore,
                    PciScope    = software.PciScope
                };

                if (software.Justification != null)
                {
                    newSoftware.JustificationId = jidDict[software.Justification.Id].Id;
                }

                Ctx.SoftwareComponents.Add(newSoftware);
                sidDict.Add(software.Id, newSoftware);
            }

            await Ctx.SaveChangesAsync();

            foreach (var key in sidDict.Keys)
            {
                var environments = Ctx.SoftwareComponentEnvironments.Where(p => p.SoftwareComponentId == key)
                                   .Select(p => p.EnvironmentId).ToArray();
                foreach (var environment in environments)
                {
                    Ctx.SoftwareComponentEnvironments.Add(new SoftwareComponentEnvironment
                    {
                        SoftwareComponentId = sidDict[key].Id,
                        EnvironmentId       = environment
                    });
                }
            }

            await Ctx.SaveChangesAsync();

            return(id);
        }
Example #18
0
 public DetailedHealthCheck(IUserSecurity loggedInUser, bool dbConnected, string[] configuration, string contextConnectionStringInfo) : base(dbConnected)
 {
     Configuration = configuration;
     ContextConnectionStringInfo = contextConnectionStringInfo;
     LoggedInUser = JsonConvert.SerializeObject(loggedInUser);
 }
Example #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SecurityService"/> class.
 /// </summary>
 /// <param name="repository">The repository.</param>
 /// <param name="membershipProvider">The membership provider.</param>
 public SecurityService(ISecurityRepository repository, IUserSecurity membershipProvider)
 {
     SecurityRepository = repository;
     MembershipProvider = membershipProvider;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AuthenticationService"/> class.
 /// </summary>
 /// <param name="repository">The repository.</param>
 /// <param name="membershipProvider">The membership provider.</param>
 public AuthenticationService(ISecurityRepository repository, IUserSecurity membershipProvider)
 {
     MembershipProvider = membershipProvider;
     SecurityRepository = repository;
 }