Example #1
0
        public static async Task <bool> AddResourceGroupRbac(this ResourceGroup resourceGroup, string puidOrAltSec, string emailAddress, bool isFunctionContainer = false)
        {
            try
            {
                var objectId = await GetUserObjectId(puidOrAltSec, emailAddress);

                if (string.IsNullOrEmpty(objectId))
                {
                    return(false);
                }

                return((await
                        new[] { resourceGroup.AddRbacAccess(objectId) }
                        .Concat(resourceGroup.Sites.Where(s => !s.IsFunctionsContainer || isFunctionContainer).Select(s => s.AddRbacAccess(objectId)))
                        .Concat(resourceGroup.ApiApps.Select(s => s.AddRbacAccess(objectId)))
                        .Concat(resourceGroup.Gateways.Select(s => s.AddRbacAccess(objectId)))
                        .Concat(resourceGroup.LogicApps.Select(s => s.AddRbacAccess(objectId)))
                        .Concat(resourceGroup.ServerFarms.Select(s => s.AddRbacAccess(objectId)))
                        .Concat(resourceGroup.StorageAccounts.Where(s => isFunctionContainer).Select(s => s.AddRbacAccess(objectId)))
                        .WhenAll())
                       .All(e => e));
            }
            catch
            {
                return(false);
            }
        }