private void CheckPermissionsOnTable()

in src/Program.cs [851:873]


        private void CheckPermissionsOnTable()
        {
            Ensure.ArgIsNotNull(m_engineKcsb, nameof(m_engineKcsb));

            using (var client = KustoClientFactory.CreateCslAdminProvider(m_engineKcsb))
            {
                var showPrincipalAccessCommand = CslCommandGenerator.GenerateShowPrincipalAccessCommand("ingest", m_args.DatabaseName, m_args.TableName, useCurrentPrincipal: true);
                var isAllowed = true;

                try
                {
                    var result = client.ExecuteControlCommand<ShowPrincipalAccessCommandResult>(m_args.DatabaseName, showPrincipalAccessCommand).Single();
                    isAllowed = result.IsAllowed;
                }
                catch
                { }

                if (!isAllowed)
                {
                    throw new Exception($"Current principal is not authorized to ingest data into table '{m_args.TableName}' in database '{m_args.DatabaseName}'");
                }
            }
        }