Example #1
0
        internal static WebServer GetAssociatedWebServer(int packageId)
        {
            int serviceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web);

            //
            return(WebServerController.GetWebServer(serviceId));
        }
Example #2
0
        private static List <string> GetImportableCustomItems(int packageId, int itemTypeId)
        {
            List <string> items       = new List <string>();
            PackageInfo   packageInfo = PackageController.GetPackage(packageId);

            if (packageInfo == null)
            {
                return(items);
            }

            switch (itemTypeId)
            {
            case -100:
                List <UserInfo> users = UserController.GetUsers(packageInfo.UserId, true);
                foreach (UserInfo user in users)
                {
                    List <PackageInfo> packages = PackageController.GetPackages(user.UserId);
                    foreach (PackageInfo package in packages)
                    {
                        List <WebSite> webSites = WebServerController.GetWebSites(package.PackageId, false);
                        foreach (WebSite webSite in webSites)
                        {
                            items.Add(user.Username + "|" + user.UserId.ToString() + "|" + package.PackageId.ToString() + "|" + webSite.SiteId + "|" + webSite.Id);
                        }
                    }
                }

                break;
            }

            return(items);
        }
Example #3
0
        public static int SetFilePermissions(int packageId, string path, UserPermission[] users, bool resetChildPermissions)
        {
            // check account
            int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);

            if (accountCheck < 0)
            {
                return(accountCheck);
            }

            // place log record
            TaskManager.StartTask("FILES", "SET_PERMISSIONS", path, packageId);

            try
            {
                OS.OperatingSystem os       = GetOS(packageId);
                string             fullPath = GetFullPackagePath(packageId, path);

                // get users OU defined on web server
                string usersOU = WebServerController.GetWebUsersOU(packageId);

                os.GrantGroupNtfsPermissions(fullPath, users, usersOU, resetChildPermissions);

                return(0);
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
            finally
            {
                TaskManager.CompleteTask();
            }
        }
        public static void EnableLoadUserProfile(int serverId)
        {
            int serviceId = getWebServiceId(serverId);

            if (serviceId != -1)
            {
                WebServerController.GetWebServer(serviceId).EnableLoadUserProfile();
            }
        }
        public static bool CheckLoadUserProfile(int serverId)
        {
            int serviceId = getWebServiceId(serverId);

            if (serviceId != -1)
            {
                return(WebServerController.GetWebServer(serviceId).CheckLoadUserProfile());
            }

            return(false);
        }
Example #6
0
        public static GalleryApplicationsResult GetGalleryApplicationsByServiceId(int serviceId)
        {
            GalleryApplicationsResult result;

            //
            try
            {
                TaskManager.StartTask(TASK_MANAGER_SOURCE, GET_SRV_GALLERY_APPS_TASK);
                //
                if (SecurityContext.CheckAccount(DemandAccount.IsAdmin) != 0)
                {
                    return(WAG_MODULE_NOT_AVAILABLE <GalleryApplicationsResult>());
                }
                //
                WebServer webServer = WebServerController.GetWebServer(serviceId);
                // ERROR: WAG is unavailable
                if (!webServer.IsMsDeployInstalled())
                {
                    return(WAG_MODULE_NOT_AVAILABLE <GalleryApplicationsResult>());
                }
                //
                result = webServer.GetGalleryApplications(String.Empty);
                //
                if (!result.IsSuccess)
                {
                    foreach (string errorMessage in result.ErrorCodes)
                    {
                        TaskManager.WriteError(errorMessage);
                    }
                    //
                    return(WAG_GENERIC_MODULE_ERROR <GalleryApplicationsResult>());
                }
            }
            catch (Exception ex)
            {
                TaskManager.WriteError(ex);
                //
                return(WAG_GENERIC_MODULE_ERROR <GalleryApplicationsResult>());
            }
            finally
            {
                TaskManager.CompleteTask();
            }
            //
            return(result);
        }
        public static GalleryApplicationsResult GetGalleryApplicationsByServiceId(int serviceId)
        {
            GalleryApplicationsResult result;

            //
            try
            {
                TaskManager.StartTask(TASK_MANAGER_SOURCE, GET_SRV_GALLERY_APPS_TASK);

                int accountCheck = SecurityContext.CheckAccount(DemandAccount.IsAdmin);
                if (accountCheck < 0)
                {
                    return(Warning <GalleryApplicationsResult>((-accountCheck).ToString()));
                }

                // check if WAG is installed
                WebServer webServer = WebServerController.GetWebServer(serviceId);

                if (!webServer.IsMsDeployInstalled())
                {
                    return(Error <GalleryApplicationsResult>(GalleryErrors.MsDeployIsNotInstalled));
                }

                // get applications
                result = webServer.GetGalleryApplications(String.Empty);

                if (!result.IsSuccess)
                {
                    return(Error <GalleryApplicationsResult>(result, GalleryErrors.GetApplicationsError));
                }
            }
            catch (Exception ex)
            {
                TaskManager.WriteError(ex);
                return(Error <GalleryApplicationsResult>(GalleryErrors.GeneralError, ex.Message));
            }
            finally
            {
                TaskManager.CompleteTask();
            }
            //
            return(result);
        }
Example #8
0
        public void Setup()
        {
            IFileSystem      fileSystem      = new WindowsFileSystem();
            IApplicationInfo applicationInfo = new ApplicationInfo();
            ITimeService     timeService     = new RealTimeService();

            ISignal serverStopSignal = new ManualResetSignal(false);

            IWebServerConfiguration configuration = new WebServerConfiguration();

            IRazorCompiler            razorCompiler       = new InMemoryRazorCompiler();
            IRazorViewRenderingEngine viewRenderingEngine = new RazorViewRenderingEngine(fileSystem, razorCompiler);

            IWebServerController webServerController = new WebServerController(serverStopSignal);
            IFileMimeTypesMap    fileMimeTypesMap    = new FileMimeTypesMap();
            IFileCache           fileCache           = new FileCache();

            List <IWebRequestRoute> routes      = new List <IWebRequestRoute>();
            string         contentRootDirectory = Path.Combine(TestContext.CurrentContext.TestDirectory, "sample-content");
            ContentCommand contentCommand       = new ContentCommand(contentRootDirectory, fileSystem, fileCache);

            routes.Add(new RegexWebRequestRoute("^content/(?<path>.+)$", HttpMethod.GET, contentCommand));

            // ReSharper disable once CollectionNeverUpdated.Local
            List <IWebPolicy> policies = new List <IWebPolicy>();

            const string ExternalUrl = "http://localhost";
            const int    Port        = 12345;

            testServiceUrl = "{0}:{1}/".Fmt(ExternalUrl, Port);

            host = new TestHost(
                configuration, ExternalUrl, Port, null, fileSystem, applicationInfo, timeService, viewRenderingEngine, fileMimeTypesMap, webServerController, routes, policies);
            host.Start();

            IWebConfiguration webConfiguration = new WebConfiguration("Syborg.Tests");

            restClientFactory = new RestClientFactory(webConfiguration);
        }
Example #9
0
        public static UserPermission[] GetFilePermissions(int packageId, string path)
        {
            try
            {
                // get all accounts
                UserPermission[] users = GetAvailableSecurityAccounts(packageId);

                OS.OperatingSystem os       = GetOS(packageId);
                string             fullPath = GetFullPackagePath(packageId, path);

                // get users OU defined on web server
                string usersOU = WebServerController.GetWebUsersOU(packageId);

                users = os.GetGroupNtfsPermissions(fullPath, users, usersOU);

                return(users);
            }
            catch (Exception ex)
            {
                throw TaskManager.WriteError(ex);
            }
        }
Example #10
0
        private static UserPermission[] GetAvailableSecurityAccounts(int packageId)
        {
            List <UserPermission> users = new List <UserPermission>();

            // all web sites
            List <WebSite> sites        = WebServerController.GetWebSites(packageId, false);
            int            webServiceId = PackageController.GetPackageServiceId(packageId, ResourceGroups.Web);

            if (webServiceId > 0)
            {
                List <string> siteIds = new List <string>();
                foreach (WebSite site in sites)
                {
                    siteIds.Add(site.SiteId);
                }

                WebServer web          = WebServerController.GetWebServer(webServiceId);
                string[]  siteAccounts = web.GetSitesAccounts(siteIds.ToArray());

                for (int i = 0; i < sites.Count; i++)
                {
                    UserPermission user = new UserPermission();
                    user.DisplayName = sites[i].Name;
                    user.AccountName = siteAccounts[i];
                    users.Add(user);
                }
            }

            // add "network service"
            UserPermission ns = new UserPermission();

            ns.DisplayName = "NETWORK SERVICE";
            ns.AccountName = "NETWORK SERVICE";
            users.Add(ns);

            return(users.ToArray());
        }
Example #11
0
        private void RollbackInstallation(InstallationInfo inst)
        {
            // remove virtual dir
            if (inst[PROPERTY_VDIR_CREATED] != null)
            {
                // delete virtual directory
                WebServerController.DeleteAppVirtualDirectory(inst.WebSiteId, inst.VirtualDir);

                // delete folder
                FilesController.DeleteFiles(inst.PackageId, new string[] { inst[PROPERTY_CONTENT_PATH] });
            }

            // remove database
            if (inst[PROPERTY_DATABASE_CREATED] != null)
            {
                DatabaseServerController.DeleteSqlDatabase(inst.DatabaseId);
            }

            // remove database user
            if (inst[PROPERTY_USER_CREATED] != null)
            {
                DatabaseServerController.DeleteSqlUser(inst.UserId);
            }
        }
Example #12
0
 public List <WebVirtualDirectory> GetVirtualDirectories(int siteItemId)
 {
     return(WebServerController.GetVirtualDirectories(siteItemId));
 }
Example #13
0
 public WebSite GetWebSite(int siteItemId)
 {
     return(WebServerController.GetWebSite(siteItemId));
 }
Example #14
0
 public List <WebSite> GetWebSites(int packageId, bool recursive)
 {
     return(WebServerController.GetWebSites(packageId, recursive));
 }
Example #15
0
 public DataSet GetRawWebSitesPaged(int packageId,
                                    string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows)
 {
     return(WebServerController.GetRawWebSitesPaged(packageId, filterColumn, filterValue,
                                                    sortColumn, startRow, maximumRows));
 }
Example #16
0
 public List <SSLCertificate> GetPendingCertificates(int siteItemId)
 {
     return(WebServerController.GetPendingCertificates(siteItemId));
 }
Example #17
0
 public int DeleteWebSitePointer(int siteItemId, int domainId)
 {
     return(WebServerController.DeleteWebSitePointer(siteItemId, domainId));
 }
Example #18
0
 public ResultObject DeleteCertificate(int siteId, SSLCertificate certificate)
 {
     return(WebServerController.DeleteCertificate(siteId, certificate));
 }
Example #19
0
 public byte[] ExportCertificate(int siteId, string serialNumber, string password)
 {
     return(WebServerController.ExportCertificate(siteId, serialNumber, password));
 }
Example #20
0
 public ResultObject CheckSSLForDomain(string domain, int siteID)
 {
     return(WebServerController.CheckSSLForDomain(domain, siteID));
 }
Example #21
0
 public int CheckSSLForWebsite(int siteID, bool renewal)
 {
     return(WebServerController.CheckSSL(siteID, renewal));
 }
Example #22
0
 public SSLCertificate GetSiteCert(int siteID)
 {
     return(WebServerController.GetSiteCert(siteID));
 }
Example #23
0
 public SSLCertificate GetSSLCertificateByID(int Id)
 {
     return(WebServerController.GetSslCertificateById(Id));
 }
Example #24
0
 public WebVirtualDirectory GetVirtualDirectory(int siteItemId, string vdirName)
 {
     return(WebServerController.GetVirtualDirectory(siteItemId, vdirName));
 }
Example #25
0
 public List <DomainInfo> GetWebSitePointers(int siteItemId)
 {
     return(WebServerController.GetWebSitePointers(siteItemId));
 }
Example #26
0
 public ResultObject ImportCertificate(int siteId)
 {
     return(WebServerController.ImportCertificate(siteId));
 }
Example #27
0
 public ResultObject CheckCertificate(int siteId)
 {
     return(WebServerController.CheckCertificate(siteId));
 }
Example #28
0
 public ResultObject DeleteCertificateRequest(int siteId, int csrID)
 {
     return(WebServerController.DeleteCertificateRequest(siteId, csrID));
 }
Example #29
0
 public List <SSLCertificate> GetCertificatesForSite(int siteId)
 {
     return(WebServerController.GetCertificatesForSite(siteId));
 }
Example #30
0
 public ResultObject InstallPfx(byte[] certificate, int siteItemId, string password)
 {
     return(WebServerController.InstallPfx(certificate, siteItemId, password));
 }