public async Task <Response <ApplicationSecurityGroup> > GetAsync(string resourceGroupName, string applicationSecurityGroupName, CancellationToken cancellationToken = default)
        {
            if (resourceGroupName == null)
            {
                throw new ArgumentNullException(nameof(resourceGroupName));
            }
            if (applicationSecurityGroupName == null)
            {
                throw new ArgumentNullException(nameof(applicationSecurityGroupName));
            }

            using var message = CreateGetRequest(resourceGroupName, applicationSecurityGroupName);
            await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false);

            switch (message.Response.Status)
            {
            case 200:
            {
                ApplicationSecurityGroup value = default;
                using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false);

                if (document.RootElement.ValueKind == JsonValueKind.Null)
                {
                    value = null;
                }
                else
                {
                    value = ApplicationSecurityGroup.DeserializeApplicationSecurityGroup(document.RootElement);
                }
                return(Response.FromValue(value, message.Response));
            }
        public ActionResult DeleteConfirmSecurityGroup(string id)
        {
            ApplicationSecurityGroup securityGroup = IdentityContext.SecurityGroups
                                                     .Include(x => x.Roles).Include(x => x.Users)
                                                     .FirstOrDefault(x => x.Id == id);

            securityGroup.Users.ForEach(u =>
            {
                securityGroup.Roles.ForEach(role =>
                {
                    // Silinecek role başka bir sec grp da var mı? Varsa kullanıcıdan silmemeliyiz.
                    bool hasAnotherSecGroupThatRoleForUser =
                        u.SecurityGroups.Where(x => x.Id != id).ToList()
                        .Any(x => x.Roles.Any(r => r.Id == role.Id));

                    if (hasAnotherSecGroupThatRoleForUser == false)
                    {
                        UserManager.RemoveFromRole(u.Id, role.Name);
                    }
                });
            });

            IdentityContext.SecurityGroups.Remove(securityGroup);
            IdentityContext.SaveChanges();

            return(JavaScript("deletesecuritygroup_success();"));
        }
Exemple #3
0
        private static void AddInitialSecurityGroups(IdentityContext context, SecurityGroupInitializeObject[] securityGroups)
        {
            foreach (var item in securityGroups)
            {
                ApplicationSecurityGroup securityGroup = context.SecurityGroups.FirstOrDefault(x => x.Name == item.Name);
                bool isCreated = false;

                if (securityGroup == null)
                {
                    securityGroup = new ApplicationSecurityGroup()
                    {
                        Id          = Guid.NewGuid().ToString(),
                        Name        = item.Name,
                        Description = "Lorem ipsum dolor sit a met."
                    };
                    isCreated = true;
                }
                securityGroup.Roles.Clear();
                context.SaveChanges();

                List <ApplicationRole> roles = context.Roles.Where(x => item.RoleNames.Contains(x.Name)).ToList();
                securityGroup.Roles.AddRange(roles);

                if (isCreated)
                {
                    context.SecurityGroups.Add(securityGroup);
                }

                context.SaveChanges();
            }
        }
        public ActionResult DetailsSecurityGroup(string id)
        {
            ApplicationSecurityGroup      securityGroup = IdentityContext.SecurityGroups.Find(id);
            SecurityGroupDetailsViewModel model         = new SecurityGroupDetailsViewModel
            {
                SecurityGroup = securityGroup
            };

            return(PartialView("_SecurityGroupDetailsModalPartial", model));
        }
        public ActionResult EditSecurityGroup(string id)
        {
            ApplicationSecurityGroup   securityGroup = IdentityContext.SecurityGroups.Find(id);
            SecurityGroupEditViewModel model         = new SecurityGroupEditViewModel
            {
                SecurityGroupId = securityGroup.Id,
                Name            = securityGroup.Name,
                Description     = securityGroup.Description
            };

            return(PartialView("_SecurityGroupEditModalPartial", model));
        }
        public ActionResult DetailsAddRoleToSecurityGroup(string roleId, string securityGroupId)
        {
            ApplicationRole          applicationRole = IdentityContext.Roles.Find(roleId);
            ApplicationSecurityGroup securityGroup   = IdentityContext.SecurityGroups.Find(securityGroupId);

            securityGroup.Roles.Add(applicationRole);
            IdentityContext.SaveChanges();

            securityGroup.Users.ForEach(u => UserManager.AddToRole(u.Id, applicationRole.Name));

            return(DetailsSecurityGroupRoles(securityGroupId));
        }
        public ActionResult DetailsAddSecurityGroupToUser(string userId, string securityGroupId)
        {
            ApplicationUser          applicationUser = UserManager.FindById(userId);
            ApplicationSecurityGroup securityGroup   = IdentityContext.SecurityGroups.FirstOrDefault(x => x.Id == securityGroupId);
            List <string>            roleNames       = securityGroup.Roles.Select(x => x.Name).ToList();

            roleNames.ForEach(rname => UserManager.AddToRole(applicationUser.Id, rname));

            applicationUser.SecurityGroups.Add(securityGroup);
            UserManager.Update(applicationUser);

            return(DetailsUserData(userId));
        }
        public ActionResult EditSecurityGroup(SecurityGroupEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationSecurityGroup securityGroup = IdentityContext.SecurityGroups.Find(model.SecurityGroupId);
                securityGroup.Name        = model.Name;
                securityGroup.Description = model.Description;

                IdentityContext.SaveChanges();

                return(JavaScript("editsecuritygroup_success();"));
            }

            return(PartialView("_SecurityGroupEditFormPartial", model));
        }
        public ActionResult DetailsAddUserToSecurityGroup(string userId, string securityGroupId)
        {
            ApplicationUser          applicationUser = IdentityContext.Users.Find(userId);
            ApplicationSecurityGroup securityGroup   = IdentityContext.SecurityGroups.Find(securityGroupId);

            securityGroup.Users.Add(applicationUser);
            IdentityContext.SaveChanges();

            securityGroup.Roles.ForEach(r =>
            {
                UserManager.AddToRole(applicationUser.Id, r.Name);
            });

            return(DetailsSecurityGroupUsers(securityGroupId));
        }
Exemple #10
0
        private PSPrivateEndpoint CreatePSPrivateEndpoint()
        {
            var psPrivateEndpoint = new PSPrivateEndpoint
            {
                Name = Name,
                ResourceGroupName = ResourceGroupName,
                Location          = Location,
                Subnet            = Subnet
            };

            if (this.ByManualRequest.IsPresent)
            {
                psPrivateEndpoint.ManualPrivateLinkServiceConnections = this.PrivateLinkServiceConnection.ToList();
            }
            else
            {
                psPrivateEndpoint.PrivateLinkServiceConnections = this.PrivateLinkServiceConnection.ToList();
            }

            if (!string.IsNullOrEmpty(this.EdgeZone))
            {
                psPrivateEndpoint.ExtendedLocation = new PSExtendedLocation(this.EdgeZone);
            }

            // Add support for new properties ApplicationSecurityGroup, IpConfiguration, CustomNetworkInterfaceName
            if (this.ApplicationSecurityGroup != null && this.ApplicationSecurityGroup.Length > 0)
            {
                psPrivateEndpoint._psApplicationSecurityGroups = ApplicationSecurityGroup.ToList();
            }
            if (this.IpConfiguration != null && this.IpConfiguration.Length > 0)
            {
                psPrivateEndpoint._psIpConfigurations = this.IpConfiguration.ToList();
            }
            if (this.CustomNetworkInterfaceName != null)
            {
                psPrivateEndpoint.CustomNetworkInterfaceName = this.CustomNetworkInterfaceName;
            }


            var peModel = NetworkResourceManagerProfile.Mapper.Map <MNM.PrivateEndpoint>(psPrivateEndpoint);

            peModel.Tags = TagsConversionHelper.CreateTagDictionary(Tag, validate: true);

            this.PrivateEndpointClient.CreateOrUpdate(ResourceGroupName, Name, peModel);
            var getPrivateEndpoint = GetPrivateEndpoint(ResourceGroupName, Name);

            return(getPrivateEndpoint);
        }
        public ActionResult DetailsSecurityGroupRoles(string id)
        {
            ApplicationSecurityGroup securityGroup = IdentityContext.SecurityGroups.Find(id);
            List <ApplicationRole>   roles         = securityGroup?.Roles.ToList();

            string[] rolesIds = roles.Select(x => x.Id).ToArray();
            List <ApplicationRole> exceptRoles = IdentityContext.Roles.Where(x => rolesIds.Contains(x.Id) == false).ToList();

            SecurityGroupDetailsViewModel model = new SecurityGroupDetailsViewModel
            {
                SecurityGroup = securityGroup,
                Roles         = roles,
                ExceptRoles   = exceptRoles
            };

            return(base.PartialView("_SecurityGroupRolesPartial", model));
        }
Exemple #12
0
        private static void AddInitialUsersToSecurityGroup(IdentityContext context, List <UserInitializeObject> developers)
        {
            foreach (var item in developers)
            {
                ApplicationUser user = context.Users.FirstOrDefault(x => x.Email == item.Email);
                user.SecurityGroups.Clear();
                context.SaveChanges();

                foreach (SecurityGroupInitializeObject secGroup in item.SecurityGroups)
                {
                    ApplicationSecurityGroup securityGroup = context.SecurityGroups.FirstOrDefault(x => x.Name == secGroup.Name);
                    user.SecurityGroups.Add(securityGroup);
                }

                context.SaveChanges();
            }
        }
        public ActionResult DetailsSecurityGroupUsers(string id)
        {
            ApplicationSecurityGroup securityGroup = IdentityContext.SecurityGroups.Find(id);
            List <ApplicationUser>   users         = securityGroup?.Users.ToList();

            string[] usersIds = users.Select(x => x.Id).ToArray();
            List <ApplicationUser> exceptUsers = IdentityContext.Users.Where(x => usersIds.Contains(x.Id) == false).ToList();

            SecurityGroupDetailsViewModel model = new SecurityGroupDetailsViewModel
            {
                SecurityGroup = securityGroup,
                Users         = users,
                ExceptUsers   = exceptUsers
            };

            return(base.PartialView("_SecurityGroupUsersPartial", model));
        }
        public ActionResult CreateSecurityGroup(SecurityGroupCreateViewModel model)
        {
            if (ModelState.IsValid)
            {
                ApplicationSecurityGroup securityGroup = new ApplicationSecurityGroup
                {
                    Id          = Guid.NewGuid().ToString(),
                    Name        = model.Name,
                    Description = model.Description
                };

                IdentityContext.SecurityGroups.Add(securityGroup);
                IdentityContext.SaveChanges();

                return(JavaScript("createsecuritygroup_success();"));
            }

            return(PartialView("_SecurityGroupCreateFormPartial", model));
        }
        public ActionResult DetailsSecurityGroupData(string id)
        {
            ApplicationSecurityGroup securityGroup      = IdentityContext.SecurityGroups.Find(id);
            List <ApplicationRole>   securityGroupRoles = securityGroup.Roles.ToList();
            List <ApplicationUser>   securityGroupUsers = securityGroup.Users.ToList();

            string[] securityGroupRolesIds = securityGroupRoles.Select(x => x.Id).ToArray();
            string[] securityGroupUsersIds = securityGroupUsers.Select(x => x.Id).ToArray();
            List <ApplicationRole>        securityGroupExceptRoles = IdentityContext.Roles.Where(x => securityGroupRolesIds.Contains(x.Id) == false).ToList();
            List <ApplicationUser>        securityGroupExceptUsers = IdentityContext.Users.Where(x => securityGroupUsersIds.Contains(x.Id) == false).ToList();
            SecurityGroupDetailsViewModel model = new SecurityGroupDetailsViewModel
            {
                SecurityGroup = securityGroup,
                Roles         = securityGroupRoles,
                Users         = securityGroupUsers,
                ExceptRoles   = securityGroupExceptRoles,
                ExceptUsers   = securityGroupExceptUsers
            };

            return(PartialView("_SecurityGroupDetailsDataPartial", model));
        }
        public ActionResult DetailsRemoveUserSecurityGroup(string userId, string securityGroupId)
        {
            ApplicationUser          applicationUser = IdentityContext.Users.Find(userId);
            ApplicationSecurityGroup securityGroup   = applicationUser.SecurityGroups.FirstOrDefault(x => x.Id == securityGroupId);

            securityGroup.Roles.ForEach(r =>
            {
                var roleSecGroupsIds = r.SecurityGroups.Select(x => x.Id).ToArray();
                var exceptSecGroups  = r.SecurityGroups.Where(x => roleSecGroupsIds.Contains(x.Id) && x.Id != securityGroupId).ToList();

                if (exceptSecGroups != null && exceptSecGroups.Count > 0)
                {
                    //Eğer kullanıcının silinecek SG 'undan gelen rol'ü.Başka SG'lerde de varsa
                    // Silinen SG'un dışındaki SG'ları için..
                    if (exceptSecGroups.Any(sg => sg.Users.Any(x => x.Id == applicationUser.Id)))
                    {
                        //Silinmeye çalışılan SG'un rollerinden şu an işlenen rol için,
                        // Bu kullanıcı başka SG üzerinden bu rol'e aittir.
                        // Yani kullanıcı rol'den kaldırılmamalı.
                        // Kaldırılırsa, diğer SG içinde olmasına rağmen rol kullanıcıdan silinmiş olur.
                    }
                    else
                    {
                        //Silinecek SG'un rolü için Kullanıcı başka SG 'lar üzerinden dahi bu rol'e dahil değil.
                        UserManager.RemoveFromRole(applicationUser.Id, r.Name);
                    }
                }
                else
                {
                    //Kullanıcının silinecek SG'undaki rol, başka SG'a ait değil.
                    UserManager.RemoveFromRole(applicationUser.Id, r.Name);
                }
            });

            UserManager.RemoveFromRoles(applicationUser.Id, securityGroup.Roles.Select(x => x.Name).ToArray());
            applicationUser.SecurityGroups.Remove(securityGroup);
            IdentityContext.SaveChanges();

            return(DetailsUserData(userId));
        }
        public ActionResult DetailsRemoveRoleFromSecurityGroup(string roleId, string securityGroupId)
        {
            ApplicationRole          applicationRole = IdentityContext.Roles.Find(roleId);
            ApplicationSecurityGroup securityGroup   = IdentityContext.SecurityGroups.Find(securityGroupId);

            securityGroup.Roles.Remove(applicationRole);
            IdentityContext.SaveChanges();

            securityGroup.Users.ForEach(u =>
            {
                //Silinecek role başka bir sec grp da var mı? Varsa kullanıcıdan silmemeliyiz.
                bool hasAnotherSecGroupThatRoleForUser =
                    u.SecurityGroups.Where(x => x.Id != securityGroupId).ToList()
                    .Any(x => x.Roles.Any(r => r.Id == roleId));

                if (hasAnotherSecGroupThatRoleForUser == false)
                {
                    UserManager.RemoveFromRole(u.Id, applicationRole.Name);
                }
            });

            return(DetailsSecurityGroupRoles(securityGroupId));
        }
Exemple #18
0
        public virtual ApplicationSecurityGroupsCreateOrUpdateOperation StartCreateOrUpdate(string resourceGroupName, string applicationSecurityGroupName, ApplicationSecurityGroup parameters, CancellationToken cancellationToken = default)
        {
            if (resourceGroupName == null)
            {
                throw new ArgumentNullException(nameof(resourceGroupName));
            }
            if (applicationSecurityGroupName == null)
            {
                throw new ArgumentNullException(nameof(applicationSecurityGroupName));
            }
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            using var scope = _clientDiagnostics.CreateScope("ApplicationSecurityGroupsClient.StartCreateOrUpdate");
            scope.Start();
            try
            {
                var originalResponse = RestClient.CreateOrUpdate(resourceGroupName, applicationSecurityGroupName, parameters, cancellationToken);
                return(new ApplicationSecurityGroupsCreateOrUpdateOperation(_clientDiagnostics, _pipeline, RestClient.CreateCreateOrUpdateRequest(resourceGroupName, applicationSecurityGroupName, parameters).Request, originalResponse));
            }
            catch (Exception e)
            {
                scope.Failed(e);
                throw;
            }
        }
 /// <summary>
 /// Creates or updates an application security group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='applicationSecurityGroupName'>
 /// The name of the application security group.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the create or update ApplicationSecurityGroup
 /// operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <ApplicationSecurityGroup> BeginCreateOrUpdateAsync(this IApplicationSecurityGroupsOperations operations, string resourceGroupName, string applicationSecurityGroupName, ApplicationSecurityGroup parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, applicationSecurityGroupName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Creates or updates an application security group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='applicationSecurityGroupName'>
 /// The name of the application security group.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the create or update ApplicationSecurityGroup
 /// operation.
 /// </param>
 public static ApplicationSecurityGroup BeginCreateOrUpdate(this IApplicationSecurityGroupsOperations operations, string resourceGroupName, string applicationSecurityGroupName, ApplicationSecurityGroup parameters)
 {
     return(operations.BeginCreateOrUpdateAsync(resourceGroupName, applicationSecurityGroupName, parameters).GetAwaiter().GetResult());
 }
        public ActionResult DeleteSecurityGroup(string id)
        {
            ApplicationSecurityGroup securityGroup = IdentityContext.SecurityGroups.Find(id);

            return(PartialView("_SecurityGroupDeleteModalPartial", securityGroup));
        }