コード例 #1
0
 public function __construct()
 {
     $this->private_cloud_repository = new SapphirePrivateCloudRepository();
     $this->private_cloud_draft_repository = new SapphirePrivateCloudRepository(true);
     $this->marketplace_type_repository = new SapphireMarketPlaceTypeRepository();
     //google geo coding settings
     $google_geo_coding_api_key = null;
     $google_geo_coding_client_id = null;
     $google_geo_coding_private_key = null;
     if (defined('GOOGLE_GEO_CODING_API_KEY')) {
         $google_geo_coding_api_key = GOOGLE_GEO_CODING_API_KEY;
     } else {
         if (defined('GOOGLE_GEO_CODING_CLIENT_ID') && defined('GOOGLE_GEO_CODING_PRIVATE_KEY')) {
             $google_geo_coding_client_id = GOOGLE_GEO_CODING_CLIENT_ID;
             $google_geo_coding_private_key = GOOGLE_GEO_CODING_PRIVATE_KEY;
         }
     }
     $manager = new PrivateCloudManager($this->private_cloud_repository, new SapphireMarketPlaceVideoTypeRepository(), $this->marketplace_type_repository, new SapphireGuestOSTypeRepository(), new SapphireHyperVisorTypeRepository(), new SapphireOpenStackApiVersionRepository(), new SapphireOpenStackComponentRepository(), new SapphireOpenStackReleaseRepository(), new SapphireRegionRepository(), new SapphireSupportChannelTypeRepository(), new SapphireOpenStackReleaseSupportedApiVersionRepository(), new PrivateCloudAddPolicy($this->private_cloud_repository, $this->marketplace_type_repository), new CompanyServiceCanAddResourcePolicy(), new CompanyServiceCanAddVideoPolicy(), new PrivateCloudFactory(), new MarketplaceFactory(), new ValidatorFactory(), new OpenStackApiFactory(), new GoogleGeoCodingService(new SapphireGeoCodingQueryRepository(), new UtilFactory(), SapphireTransactionManager::getInstance(), $google_geo_coding_api_key, $google_geo_coding_client_id, $google_geo_coding_private_key), null, new SessionCacheService(), SapphireTransactionManager::getInstance());
     $draft_manager = new PrivateCloudManager($this->private_cloud_draft_repository, new SapphireMarketPlaceVideoTypeRepository(), $this->marketplace_type_repository, new SapphireGuestOSTypeRepository(), new SapphireHyperVisorTypeRepository(), new SapphireOpenStackApiVersionRepository(), new SapphireOpenStackComponentRepository(), new SapphireOpenStackReleaseRepository(), new SapphireRegionRepository(), new SapphireSupportChannelTypeRepository(), new SapphireOpenStackReleaseSupportedApiVersionRepository(), new PrivateCloudAddPolicy($this->private_cloud_draft_repository, $this->marketplace_type_repository), new CompanyServiceCanAddResourcePolicy(), new CompanyServiceCanAddVideoPolicy(), new PrivateCloudDraftFactory(), new MarketplaceDraftFactory(), new ValidatorFactory(), new OpenStackApiFactory(), new GoogleGeoCodingService(new SapphireGeoCodingQueryRepository(), new UtilFactory(), SapphireTransactionManager::getInstance(), $google_geo_coding_api_key, $google_geo_coding_client_id, $google_geo_coding_private_key), null, new SessionCacheService(), SapphireTransactionManager::getInstance());
     parent::__construct($manager, $draft_manager, new PrivateCloudFactory(), new PrivateCloudDraftFactory());
     // filters ...
     $this_var = $this;
     $current_user = $this->current_user;
     $repository = $this->private_cloud_repository;
     $draft_repository = $this->private_cloud_draft_repository;
     $this->addBeforeFilter('addCompanyService', 'check_add_company', function ($request) use($this_var, $current_user) {
         $data = $this_var->getJsonRequest();
         if (!$data) {
             return $this_var->serverError();
         }
         $company_id = intval(@$data['company_id']);
         if (!$current_user->isMarketPlaceAdminOfCompany(IPrivateCloudService::MarketPlaceGroupSlug, $company_id)) {
             return $this_var->permissionFailure();
         }
     });
     $this->addBeforeFilter('updateCompanyService', 'check_update_company', function ($request) use($this_var, $current_user) {
         $data = $this_var->getJsonRequest();
         if (!$data) {
             return $this_var->serverError();
         }
         if (!$current_user->isMarketPlaceAdminOfCompany(IPrivateCloudService::MarketPlaceGroupSlug, intval(@$data['company_id']))) {
             return $this_var->permissionFailure();
         }
     });
     $this->addBeforeFilter('deleteCompanyService', 'check_delete_company', function ($request) use($this_var, $current_user, $repository, $draft_repository) {
         $company_service_id = intval($request->param('COMPANY_SERVICE_ID'));
         $is_draft = intval($this->request->param('IS_DRAFT'));
         $company_service = $is_draft ? $draft_repository->getById($company_service_id) : $repository->getById($company_service_id);
         if (!$current_user->isMarketPlaceAdminOfCompany(IPrivateCloudService::MarketPlaceGroupSlug, $company_service->getCompany()->getIdentifier())) {
             return $this_var->permissionFailure();
         }
     });
 }
コード例 #2
0
 public function __construct()
 {
     $this->consultant_repository = new SapphireConsultantRepository();
     $this->consultant_draft_repository = new SapphireConsultantRepository(true);
     $this->marketplace_type_repository = new SapphireMarketPlaceTypeRepository();
     $this->languages_repository = new SapphireSpokenLanguageRepository();
     $manager = new ConsultantManager($this->consultant_repository, new SapphireMarketPlaceVideoTypeRepository(), $this->marketplace_type_repository, new SapphireOpenStackApiVersionRepository(), new SapphireOpenStackComponentRepository(), new SapphireOpenStackReleaseRepository(), new SapphireRegionRepository(), new SapphireSupportChannelTypeRepository(), $this->languages_repository, new SapphireConfigurationManagementTypeRepository(), new SapphireConsultantServiceOfferedTypeRepository(), new ConsultantAddPolicy($this->consultant_repository, $this->marketplace_type_repository), new CompanyServiceCanAddResourcePolicy(), new CompanyServiceCanAddVideoPolicy(), new ConsultantFactory(), new MarketplaceFactory(), new ValidatorFactory(), new OpenStackApiFactory(), new GoogleGeoCodingService(new SapphireGeoCodingQueryRepository(), new UtilFactory(), SapphireTransactionManager::getInstance()), null, new SessionCacheService(), SapphireTransactionManager::getInstance());
     $draft_manager = new ConsultantManager($this->consultant_draft_repository, new SapphireMarketPlaceVideoTypeRepository(), $this->marketplace_type_repository, new SapphireOpenStackApiVersionRepository(), new SapphireOpenStackComponentRepository(), new SapphireOpenStackReleaseRepository(), new SapphireRegionRepository(), new SapphireSupportChannelTypeRepository(), $this->languages_repository, new SapphireConfigurationManagementTypeRepository(), new SapphireConsultantServiceOfferedTypeRepository(), new ConsultantAddPolicy($this->consultant_draft_repository, $this->marketplace_type_repository), new CompanyServiceCanAddResourcePolicy(), new CompanyServiceCanAddVideoPolicy(), new ConsultantDraftFactory(), new MarketplaceDraftFactory(), new ValidatorFactory(), new OpenStackApiFactory(), new GoogleGeoCodingService(new SapphireGeoCodingQueryRepository(), new UtilFactory(), SapphireTransactionManager::getInstance()), null, new SessionCacheService(), SapphireTransactionManager::getInstance());
     parent::__construct($manager, $draft_manager, new ConsultantFactory(), new ConsultantDraftFactory());
     // filters ...
     $this_var = $this;
     $current_user = $this->current_user;
     $repository = $this->consultant_repository;
     $draft_repository = $this->consultant_draft_repository;
     $this->addBeforeFilter('addCompanyService', 'check_add_company', function ($request) use($this_var, $current_user) {
         $data = $this_var->getJsonRequest();
         if (!$data) {
             return $this->serverError();
         }
         $company_id = intval(@$data['company_id']);
         if (!$current_user->isMarketPlaceAdminOfCompany(IConsultant::MarketPlaceGroupSlug, $company_id)) {
             return $this_var->permissionFailure();
         }
     });
     $this->addBeforeFilter('updateCompanyService', 'check_update_company', function ($request) use($this_var, $current_user) {
         $data = $this_var->getJsonRequest();
         if (!$data) {
             return $this->serverError();
         }
         if (!$current_user->isMarketPlaceAdminOfCompany(IConsultant::MarketPlaceGroupSlug, intval(@$data['company_id']))) {
             return $this_var->permissionFailure();
         }
     });
     $this->addBeforeFilter('deleteCompanyService', 'check_delete_company', function ($request) use($this_var, $current_user, $repository, $draft_repository) {
         $company_service_id = intval($request->param('COMPANY_SERVICE_ID'));
         $is_draft = intval($this->request->param('IS_DRAFT'));
         $company_service = $is_draft ? $draft_repository->getById($company_service_id) : $repository->getById($company_service_id);
         if (!$current_user->isMarketPlaceAdminOfCompany(IConsultant::MarketPlaceGroupSlug, $company_service->getCompany()->getIdentifier())) {
             return $this_var->permissionFailure();
         }
     });
 }