示例#1
0
 public void AuthenticationCanGetWebConfigurationIfEmpty()
 {
     var appOnlyAuth = new AppOnlyAuthenticationTenant();
     Assert.AreEqual<string>(TestConstants.EXPECTED_CLIENTID, appOnlyAuth.AppId);
     Assert.AreEqual<string>(TestConstants.EXPECTED_CLIENTSECRET, appOnlyAuth.AppSecret);
     Assert.AreEqual<string>(TestConstants.EXPECTED_TENANTADMINURL, appOnlyAuth.TenantAdminUrl);
 }
示例#2
0
        public ExternalSharingRequest IsExternalSharingEnabled([FromBody]string value)
        {
            var _request = JsonConvert.DeserializeObject<ExternalSharingRequest>(value);
            _request.Success = false;

            try
            {
                AppOnlyAuthenticationTenant _auth = new AppOnlyAuthenticationTenant();
                _auth.TenantAdminUrl = _request.TenantAdminUrl;
                var _service = new Office365SiteProvisioningService();
                _service.Authentication = _auth;
                _request.ExternalSharingEnabled = _service.IsTenantExternalSharingEnabled(_request.TenantAdminUrl);
                _request.Success = true;
                return _request;
            }
            catch(Exception _ex)
            {
               _request.ErrorMessage = _ex.Message;
                OfficeDevPnP.Core.Diagnostics.Log.Error("ProvisioningController.IsExternalSharingEnabled", 
                   "There was an error processing the request. Exception: {0}", 
                   _ex);
               return _request;
            }
    
        }
 protected static void UsingTenantContext(Action<ClientContext> action)
 {
     var auth = new AppOnlyAuthenticationTenant();
     using(var context = auth.GetAuthenticatedContext())
     {
         action(context);
     }
 }
示例#4
0
        AppOnlyAuthenticationTenant CreateAppOnlyAuthenticationObject()
        {
            var _configFactory = ConfigurationFactory.GetInstance();
            var _manager = _configFactory.GetAppSetingsManager();
            var _settings = _manager.GetAppSettings();

            AppOnlyAuthenticationTenant target = new AppOnlyAuthenticationTenant()
            {
                TenantAdminUrl = _settings.TenantAdminUrl,
                AppId = _settings.ClientID,
                AppSecret = _settings.ClientSecret
            };
            return target;
        }
示例#5
0
        public void AuthenticationCanUseAuthenticatedClientContextFromConfig()
        {
            var appOnlyAuth = new AppOnlyAuthenticationTenant();
            using (var ctx = appOnlyAuth.GetAuthenticatedContext())
            {
                var web = ctx.Web;
                ctx.Load(web);
                ctx.ExecuteQuery();
                Assert.IsNotNull(web.Title);
            }

            using (var ctx = appOnlyAuth.GetAuthenticatedContext())
            {
                var web = ctx.Web;
                ctx.Load(web);
                ctx.ExecuteQuery();
                Assert.IsNotNull(web.Title);
            }          
        }
示例#6
0
        public List<SitePolicyResults> GetSitePolicies()
        {
            var _returnResults = new List<SitePolicyResults>();
            ConfigManager _manager = new ConfigManager();

            AbstractSiteProvisioningService _siteService = new Office365SiteProvisioningService();
            var _auth = new AppOnlyAuthenticationTenant();
            _auth.SiteUrl = _manager.GetAppSettingsKey("SPHost");

            var _sitePolicies = _siteService.GetAvailablePolicies();
            foreach(var _sitePolicyEntity in _sitePolicies)
            {
                var _policy = new SitePolicyResults();
                _policy.Key = _sitePolicyEntity.Name;
                _policy.Value = _sitePolicyEntity.Description;
                _returnResults.Add(_policy);
            }
            return _returnResults;
        }
示例#7
0
 private SiteEditMetadata CheckSiteSharingCapabilities(SiteEditMetadata metadata)
 {
     try
     {
         AppOnlyAuthenticationTenant _auth = new AppOnlyAuthenticationTenant();
         _auth.TenantAdminUrl = metadata.TenantAdminUrl;
         var _service = new Office365SiteProvisioningService();
         _service.Authentication = _auth;
         metadata.SiteSharingEnabled = _service.isSiteExternalSharingEnabled(metadata.Url);
         metadata.Success = true;
         return metadata;
     }
     catch (Exception _ex)
     {
         metadata.ErrorMessage = _ex.Message;
         OfficeDevPnP.Core.Diagnostics.Log.Error("SPMetadataManager.CheckTenantSharingCapabilities",
            "There was an error processing the request. Exception: {0}",
            _ex);
         return metadata;
     }
 }
示例#8
0
        public Models.SiteMetadata SetSiteMetadata([FromBody]string value)
        {
            ConfigManager _cfgmanager = new ConfigManager();
            var _auth = new AppOnlyAuthenticationTenant();
            _auth.TenantAdminUrl = _cfgmanager.GetAppSettingsKey("TenantAdminUrl");

            var _request = JsonConvert.DeserializeObject<Models.SiteMetadata>(value);
            _request.TenantAdminUrl = _auth.TenantAdminUrl;

            // Transform the request
            var _metadataRequest = ObjectMapper.ToSiteEditMetadata(_request);
            _metadataRequest.Success = false;

            try
            {
                IMetadataFactory _factory = MetadataFactory.GetInstance();
                IMetadataManager _manager = _factory.GetManager();
                var _metadataResponse = _manager.SetSiteMetadata(_metadataRequest);
                _metadataResponse.Success = true;

                // Transform response 
                var _response = ObjectMapper.ToSiteMetadata(_metadataResponse);
                return _response;
            }
            catch (Exception _ex)
            {
                _request.ErrorMessage = _ex.Message;
                OfficeDevPnP.Core.Diagnostics.Log.Error("MetadataController.SetSiteMetadata",
                   "There was an error processing the request. Exception: {0}",
                   _ex);
                return _request;
            }
        }