public Models.SiteMetadata GetSitePolices([FromBody] string value)
        {
            SiteEditMetadata _metadata = new SiteEditMetadata();
            var _request = JsonConvert.DeserializeObject <Models.SiteMetadata>(value);

            _request.Success = false;

            _metadata.TenantAdminUrl = _request.TenantAdminUrl;
            _metadata.Url            = _request.Url;

            try
            {
                IMetadataFactory _factory = MetadataFactory.GetInstance();
                IMetadataManager _manager = _factory.GetManager();
                var _results = _manager.SetSitePolicy(_metadata);
                _request.Success = true;
                return(_request);
            }
            catch (Exception _ex)
            {
                _request.ErrorMessage = _ex.Message;
                OfficeDevPnP.Core.Diagnostics.Log.Error("MetadataController.GetSiteMetadata",
                                                        "There was an error processing the request. Exception: {0}",
                                                        _ex);
                return(_request);
            }
        }
Esempio n. 2
0
        public static SiteEditMetadata ToSiteEditMetadata(SiteMetadata request)
        {
            var _newRequest = new SiteEditMetadata();

            var _owner = new SiteUser()
            {
                Name  = request.PrimaryOwnerName,
                Email = request.PrimaryOwnerEmail
            };

            _newRequest.Url                   = request.Url;
            _newRequest.TenantAdminUrl        = request.TenantAdminUrl;
            _newRequest.Title                 = request.Title;
            _newRequest.Description           = request.Description;
            _newRequest.TimeZoneId            = request.TimeZoneID;
            _newRequest.Lcid                  = request.lcid;
            _newRequest.AppliedSitePolicyName = request.SitePolicyName;
            _newRequest.SiteOwner             = _owner;
            _newRequest.SitePolicy            = request.SitePolicy;;
            _newRequest.SharePointOnPremises  = request.SharePointOnPremises;
            _newRequest.EnableExternalSharing = request.EnableExternalSharing;
            _newRequest.BusinessUnit          = request.BusinessUnit;
            _newRequest.Division              = request.Division;
            _newRequest.Function              = request.Function;
            _newRequest.Region                = request.Region;


            return(_newRequest);
        }
Esempio n. 3
0
        public static SiteMetadata ToSiteMetadata(SiteEditMetadata request)
        {
            var _newRequest = new SiteMetadata();

            _newRequest.PrimaryOwnerEmail = request.SiteOwner.Email;
            _newRequest.PrimaryOwnerName  = request.SiteOwner.Name;

            _newRequest.Url                      = request.Url;
            _newRequest.TenantAdminUrl           = request.TenantAdminUrl;
            _newRequest.Title                    = request.Title;
            _newRequest.Description              = request.Description;
            _newRequest.TimeZoneID               = request.TimeZoneId;
            _newRequest.lcid                     = request.Lcid;
            _newRequest.SitePolicy               = request.SitePolicy;
            _newRequest.SitePolicyName           = request.AppliedSitePolicyName;
            _newRequest.SitePolicyExpirationDate = request.AppliedSitePolicyExpirationDate;
            _newRequest.SharePointOnPremises     = request.SharePointOnPremises;
            _newRequest.EnableExternalSharing    = request.EnableExternalSharing;
            _newRequest.BusinessUnit             = request.BusinessUnit;
            _newRequest.Division                 = request.Division;
            _newRequest.Function                 = request.Function;
            _newRequest.Region                   = request.Region;
            _newRequest.Success                  = true;

            return(_newRequest);
        }
Esempio n. 4
0
        public SiteEditMetadata SetExternalSharing(SiteEditMetadata metadata)
        {
            try
            {
                if (!metadata.SharePointOnPremises)
                {
                    string _sharingStatus = string.Empty;

                    ConfigManager _manager        = new ConfigManager();
                    var           _tenantAdminUrl = _manager.GetAppSettingsKey("TenantAdminUrl");

                    AbstractSiteProvisioningService _siteService = new Office365SiteProvisioningService();
                    _siteService.Authentication = new AppOnlyAuthenticationTenant();
                    _siteService.Authentication.TenantAdminUrl = _tenantAdminUrl;

                    SiteInformation _srInfo = new SiteInformation();
                    _srInfo.Url = metadata.Url;
                    if (metadata.EnableExternalSharing)
                    {
                        _srInfo.EnableExternalSharing = true;
                        _sharingStatus = "true";
                    }
                    else
                    {
                        _srInfo.EnableExternalSharing = false;
                        _sharingStatus = "false";
                    }

                    _siteService.SetExternalSharing(_srInfo);

                    Uri    siteUri     = new Uri(metadata.Url);
                    string realm       = TokenHelper.GetRealmFromTargetUrl(siteUri);
                    string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

                    using (var clientContext = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
                    {
                        var _web = clientContext.Web;
                        clientContext.Load(_web);

                        //Update property bag as well
                        _web.SetPropertyBagValue(SITE_PROPERTY_EXTERNAL_SHARING, _sharingStatus);
                        metadata.Success = true;
                    };
                }
            }
            catch (Exception _ex)
            {
                var _message = string.Format("There was an error processing the request. {0}", _ex.Message);
                Log.Error("MetadataController.SetSiteExternalSharingStatus", "There was an error processing the request. Exception: {0}", _ex);
                metadata.ErrorMessage = _ex.Message;
                return(metadata);
            }

            return(metadata);
        }
Esempio n. 5
0
        public SiteEditMetadata GetSiteMetadata(SiteEditMetadata metadata)
        {
            // Check permissions
            bool _permsResult = DoesUserHavePermissions();

            Uri    siteUri     = new Uri(metadata.Url);
            string realm       = TokenHelper.GetRealmFromTargetUrl(siteUri);
            string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

            using (var clientContext = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
            {
                var _web = clientContext.Web;

                var _site = clientContext.Site;
                clientContext.Load(clientContext.Site, s => s.Owner.Title);
                clientContext.ExecuteQuery();
                metadata.SiteOwner.Name = _site.Owner.Title;

                clientContext.Load(clientContext.Site, s => s.Owner.Email);
                clientContext.ExecuteQuery();
                metadata.SiteOwner.Email = _site.Owner.Email;

                // Get site configuration settings from property bag
                metadata.SharePointOnPremises  = _web.GetPropertyBagValueString(SITE_PROPERTY_ISONPREM, string.Empty).ToBoolean();
                metadata.EnableExternalSharing = _web.GetPropertyBagValueString(SITE_PROPERTY_EXTERNAL_SHARING, string.Empty).ToBoolean();

                // Get business metadata settings from property bag
                metadata.Region       = _web.GetPropertyBagValueString(SITE_PROPERTY_REGION, string.Empty);
                metadata.Function     = _web.GetPropertyBagValueString(SITE_PROPERTY_FUNCTION, string.Empty);
                metadata.Division     = _web.GetPropertyBagValueString(SITE_PROPERTY_DIVISION, string.Empty);
                metadata.BusinessUnit = _web.GetPropertyBagValueString(SITE_PROPERTY_BUSINESS, string.Empty);
            }

            if (_permsResult)
            {
                if (!metadata.SharePointOnPremises)
                {
                    metadata = CheckTenantSharingCapabilities(metadata);
                    if (metadata.TenantSharingEnabled)
                    {
                        // Get current sharing settings (ON/OFF)
                        metadata = CheckSiteSharingCapabilities(metadata);
                    }
                }
            }
            SetSitePolicy(metadata);
            return(metadata);
        }
Esempio n. 6
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);
     }
 }
Esempio n. 7
0
        public SiteEditMetadata SetSitePolicy(SiteEditMetadata metadata)
        {
            AbstractSiteProvisioningService _siteService = new Office365SiteProvisioningService();
            var _auth = new AppOnlyAuthenticationSite();

            _auth.SiteUrl = metadata.Url;
            _siteService.Authentication = _auth;

            var _appliedSitePolicy = _siteService.GetAppliedSitePolicy();

            if (_appliedSitePolicy != null)
            {
                var _updateSitePolicy = String.Compare(metadata.SitePolicy, _appliedSitePolicy.Name, StringComparison.InvariantCultureIgnoreCase) != 0;
                if (_updateSitePolicy)
                {
                    _siteService.SetSitePolicy(metadata.AppliedSitePolicyName);
                }

                // Get applied site policy data
                Uri    siteUri     = new Uri(metadata.Url);
                string realm       = TokenHelper.GetRealmFromTargetUrl(siteUri);
                string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

                using (var ctx = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
                {
                    var _web     = ctx.Web;
                    var _expDate = ctx.Web.GetSiteExpirationDate();

                    metadata.AppliedSitePolicy               = _appliedSitePolicy;
                    metadata.AppliedSitePolicyName           = metadata.AppliedSitePolicy.Name;
                    metadata.AppliedSitePolicyExpirationDate = _expDate == DateTime.MinValue ? String.Format("{0}", "None") : String.Format("{0}", _expDate);
                };
            }
            else
            {
                _siteService.SetSitePolicy(metadata.SitePolicy);
                metadata.AppliedSitePolicyName = metadata.SitePolicy;
            }
            return(metadata);
        }
Esempio n. 8
0
        public SiteEditMetadata SetSiteMetadata(SiteEditMetadata metadata)
        {
            // Check permissions
            bool _permsResult = DoesUserHavePermissions();

            Uri    siteUri     = new Uri(metadata.Url);
            string realm       = TokenHelper.GetRealmFromTargetUrl(siteUri);
            string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

            using (var clientContext = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
            {
                if (_permsResult)
                {
                    var _web = clientContext.Web;

                    // Set external sharing value
                    _web.SetPropertyBagValue(SITE_PROPERTY_EXTERNAL_SHARING, metadata.EnableExternalSharing.ToString());

                    // Set region value
                    _web.SetPropertyBagValue(SITE_PROPERTY_REGION, metadata.Region);

                    // Set function value
                    _web.SetPropertyBagValue(SITE_PROPERTY_FUNCTION, metadata.Function);

                    // Set division value
                    _web.SetPropertyBagValue(SITE_PROPERTY_DIVISION, metadata.Division);

                    // Set business unit value
                    _web.SetPropertyBagValue(SITE_PROPERTY_BUSINESS, metadata.BusinessUnit);

                    metadata = SetSitePolicy(metadata);
                    metadata = SetExternalSharing(metadata);
                }
            }
            return(metadata);
        }
Esempio n. 9
0
        public SiteEditMetadata SetSiteMetadata(SiteEditMetadata metadata)
        {
            // Check permissions
            bool _permsResult = DoesUserHavePermissions();

            Uri siteUri = new Uri(metadata.Url);
            string realm = TokenHelper.GetRealmFromTargetUrl(siteUri);
            string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

            using (var clientContext = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
            {
                if (_permsResult)
                {
                    var _web = clientContext.Web;

                    // Set external sharing value
                    _web.SetPropertyBagValue(SITE_PROPERTY_EXTERNAL_SHARING, metadata.EnableExternalSharing.ToString());

                    // Set region value
                    _web.SetPropertyBagValue(SITE_PROPERTY_REGION, metadata.Region);

                    // Set function value
                    _web.SetPropertyBagValue(SITE_PROPERTY_FUNCTION, metadata.Function);

                    // Set division value
                    _web.SetPropertyBagValue(SITE_PROPERTY_DIVISION, metadata.Division);

                    // Set business unit value
                    _web.SetPropertyBagValue(SITE_PROPERTY_BUSINESS, metadata.BusinessUnit);

                    metadata = SetSitePolicy(metadata);
                    metadata = SetExternalSharing(metadata);
                }
            }
            return metadata;            
        }
Esempio n. 10
0
 public SiteEditMetadata GetSiteMetadata(SiteEditMetadata metadata)
 {
     throw new NotImplementedException();
 }
Esempio n. 11
0
 public SiteEditMetadata SetSitePolicy(SiteEditMetadata metadata)
 {
     throw new NotImplementedException();
 }
Esempio n. 12
0
 public SiteEditMetadata GetSiteMetadata(SiteEditMetadata metadata)
 {
     throw new NotImplementedException();
 }
Esempio n. 13
0
        public SiteEditMetadata SetSitePolicy(SiteEditMetadata metadata)
        {
            AbstractSiteProvisioningService _siteService = new Office365SiteProvisioningService();
            var _auth = new AppOnlyAuthenticationSite();
            _auth.SiteUrl = metadata.Url;
            _siteService.Authentication = _auth;

            var _appliedSitePolicy = _siteService.GetAppliedSitePolicy();           
                        
            if (_appliedSitePolicy != null)
            {
                var _updateSitePolicy = String.Compare(metadata.SitePolicy, _appliedSitePolicy.Name, StringComparison.InvariantCultureIgnoreCase) != 0;
                if (_updateSitePolicy)
                {
                    _siteService.SetSitePolicy(metadata.AppliedSitePolicyName);
                }

                // Get applied site policy data
                Uri siteUri = new Uri(metadata.Url);
                string realm = TokenHelper.GetRealmFromTargetUrl(siteUri);
                string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

                using (var ctx = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
                {
                    var _web = ctx.Web;
                    var _expDate = ctx.Web.GetSiteExpirationDate();

                    metadata.AppliedSitePolicy = _appliedSitePolicy;
                    metadata.AppliedSitePolicyName = metadata.AppliedSitePolicy.Name;
                    metadata.AppliedSitePolicyExpirationDate = _expDate == DateTime.MinValue ? String.Format("{0}", "None") : String.Format("{0}", _expDate);

                };                
            }
            else
            {
                _siteService.SetSitePolicy(metadata.SitePolicy);
                metadata.AppliedSitePolicyName = metadata.SitePolicy;
            }
            return metadata;
        }        
Esempio n. 14
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;
     }
 }
Esempio n. 15
0
        public SiteEditMetadata SetExternalSharing(SiteEditMetadata metadata)
        {
            try
            {
                if (!metadata.SharePointOnPremises)
                {
                    string _sharingStatus = string.Empty;

                    ConfigManager _manager = new ConfigManager();
                    var _tenantAdminUrl = _manager.GetAppSettingsKey("TenantAdminUrl");

                    AbstractSiteProvisioningService _siteService = new Office365SiteProvisioningService();
                    _siteService.Authentication = new AppOnlyAuthenticationTenant();
                    _siteService.Authentication.TenantAdminUrl = _tenantAdminUrl;

                    SiteInformation _srInfo = new SiteInformation();
                    _srInfo.Url = metadata.Url;
                    if (metadata.EnableExternalSharing)
                    {
                        _srInfo.EnableExternalSharing = true;
                        _sharingStatus = "true";
                    }
                    else
                    {
                        _srInfo.EnableExternalSharing = false;
                        _sharingStatus = "false";
                    }

                    _siteService.SetExternalSharing(_srInfo);

                    Uri siteUri = new Uri(metadata.Url);
                    string realm = TokenHelper.GetRealmFromTargetUrl(siteUri);
                    string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

                    using (var clientContext = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
                    {
                        var _web = clientContext.Web;
                        clientContext.Load(_web);

                        //Update property bag as well
                        _web.SetPropertyBagValue(SITE_PROPERTY_EXTERNAL_SHARING, _sharingStatus);
                        metadata.Success = true;
                    };
                }
            }
            catch (Exception _ex)
            {
                var _message = string.Format("There was an error processing the request. {0}", _ex.Message);
                Log.Error("MetadataController.SetSiteExternalSharingStatus", "There was an error processing the request. Exception: {0}", _ex);
                metadata.ErrorMessage = _ex.Message;
                return metadata;
            }

            return metadata;

        }
Esempio n. 16
0
 public SiteEditMetadata SetSitePolicy(SiteEditMetadata metadata)
 {
     throw new NotImplementedException();
 }
Esempio n. 17
0
        public SiteEditMetadata GetSiteMetadata(SiteEditMetadata metadata)
        {
            // Check permissions
            bool _permsResult = DoesUserHavePermissions();

            Uri siteUri = new Uri(metadata.Url);
            string realm = TokenHelper.GetRealmFromTargetUrl(siteUri);
            string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

            using (var clientContext = TokenHelper.GetClientContextWithAccessToken(metadata.Url, accessToken))
            {
                var _web = clientContext.Web;

                var _site = clientContext.Site;
                clientContext.Load(clientContext.Site, s => s.Owner.Title);
                clientContext.ExecuteQuery();
                metadata.SiteOwner.Name = _site.Owner.Title;

                clientContext.Load(clientContext.Site, s => s.Owner.Email);
                clientContext.ExecuteQuery();
                metadata.SiteOwner.Email = _site.Owner.Email;                

                // Get site configuration settings from property bag
                metadata.SharePointOnPremises = _web.GetPropertyBagValueString(SITE_PROPERTY_ISONPREM, string.Empty).ToBoolean();
                metadata.EnableExternalSharing = _web.GetPropertyBagValueString(SITE_PROPERTY_EXTERNAL_SHARING, string.Empty).ToBoolean();

                // Get business metadata settings from property bag
                metadata.Region = _web.GetPropertyBagValueString(SITE_PROPERTY_REGION, string.Empty);
                metadata.Function = _web.GetPropertyBagValueString(SITE_PROPERTY_FUNCTION, string.Empty);
                metadata.Division = _web.GetPropertyBagValueString(SITE_PROPERTY_DIVISION, string.Empty);
                metadata.BusinessUnit = _web.GetPropertyBagValueString(SITE_PROPERTY_BUSINESS, string.Empty);
            }
                       
            if (_permsResult)
            {               
                if (!metadata.SharePointOnPremises)
                {
                    metadata = CheckTenantSharingCapabilities(metadata);
                    if (metadata.TenantSharingEnabled)
                    {
                        // Get current sharing settings (ON/OFF)
                        metadata = CheckSiteSharingCapabilities(metadata);
                    }
                }
            }
            SetSitePolicy(metadata);
            return metadata;
        }