@@ -124,6 +124,8 @@ type IWebsiteService interface {
124124 GetWebsiteResource (websiteID uint ) ([]response.Resource , error )
125125 ListDatabases () ([]response.Database , error )
126126 ChangeDatabase (req request.ChangeDatabase ) error
127+
128+ OperateCrossSiteAccess (req request.CrossSiteAccessOp ) error
127129}
128130
129131func NewIWebsiteService () IWebsiteService {
@@ -428,7 +430,7 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error)
428430 return err
429431 }
430432 if runtime .Type == constant .RuntimePHP && runtime .Resource == constant .ResourceAppstore {
431- createPHPConfig (website )
433+ createOpenBasedirConfig (website )
432434 }
433435 }
434436 tx , ctx := helper .GetTxAndContext ()
@@ -573,6 +575,9 @@ func (w WebsiteService) GetWebsite(id uint) (response.WebsiteDTO, error) {
573575 }
574576 res .RuntimeType = runtime .Type
575577 res .RuntimeName = runtime .Name
578+ if runtime .Type == constant .RuntimePHP {
579+ res .OpenBaseDir = files .NewFileOp ().Stat (path .Join (GetSitePath (website , SiteIndexDir ), ".user.ini" ))
580+ }
576581 }
577582 return res , nil
578583}
@@ -3278,3 +3283,18 @@ func (w WebsiteService) ChangeDatabase(req request.ChangeDatabase) error {
32783283 website .DbType = req .DatabaseType
32793284 return websiteRepo .Save (context .Background (), & website )
32803285}
3286+
3287+ func (w WebsiteService ) OperateCrossSiteAccess (req request.CrossSiteAccessOp ) error {
3288+ website , err := websiteRepo .GetFirst (repo .WithByID (req .WebsiteID ))
3289+ if err != nil {
3290+ return err
3291+ }
3292+ if req .Operation == constant .StatusEnable {
3293+ createOpenBasedirConfig (& website )
3294+ }
3295+ if req .Operation == constant .StatusDisable {
3296+ fileOp := files .NewFileOp ()
3297+ return fileOp .DeleteFile (path .Join (GetSitePath (website , SiteIndexDir ), ".user.ini" ))
3298+ }
3299+ return nil
3300+ }
0 commit comments