@@ -64,7 +64,7 @@ function objectToArray($d)
6464
6565// Routing
6666switch (strtok ($ _SERVER ["REQUEST_URI " ], "? " )) {
67- case (preg_match ("/\.css$/ " , $ _SERVER ["REQUEST_URI " ]) ? true : false ):
67+ case (preg_match ("/\.css$/ " , $ _SERVER ["REQUEST_URI " ]) ? true : false ):
6868 $ path = __DIR__ . "/static/css " .$ _SERVER ["REQUEST_URI " ];
6969 if (is_file ($ path )) {
7070 // header("Content-Type: text/css");
@@ -85,34 +85,45 @@ function objectToArray($d)
8585
8686 //Declare main and /login routes which renders templates/generate.html
8787 case ("/ " ):
88- echo $ twig ->render ("generate .html " );
88+ echo $ twig ->render ("index .html " );
8989 return true ;
90- case ( " /portal " ):
91- $ sessionIntent = $ _POST [ ' intent_selector ' ];
92- $ domain = $ _POST [ ' domain ' ];
93- $ domainArray = explode ( " " , $ domain );
94- $ orgName = $ _POST [ ' org ' ] ;
95-
96- //check if the organization name exists, otherwise create a new organization
97- $ orgs = ( new \ WorkOS \ Organizations ()) -> listOrganizations ( $ domainArray );
98-
99- if ( $ orgs [ 2 ] != null ) {
100- echo count ( $ orgs);
101- $ orgId = $ orgs [2 ][0 ]-> raw ["id " ];
90+
91+ case ( " /provision_enterprise " ):
92+ //use a session for the org_id
93+ session_start ( );
94+ $ org_id ;
95+ $ organization_name = $ _POST [ " org " ] ?? null ;
96+ $ organization_domains = $ _POST [ " domain " ] ?? null ;
97+
98+ $ orgs = ( new \ WorkOS \ Organizations ())-> listOrganizations (domains: [ $ organization_domains ]);
99+
100+ if (! empty ( $ orgs[ " data " ])) {
101+ $ org_id = $ orgs [" data " ][0 ]["id " ];
102102 } else {
103- $ newOrganization = (new \WorkOS \Organizations ()) -> createOrganization ($ orgName , $ domainArray );
104- $ orgId = $ newOrganization ->id ;
103+ $ organization = (new \WorkOS \Organizations ())->createOrganization (
104+ name: $ organization_name ,
105+ domains: [$ organization_domains ]
106+ );
107+ // $org_id = $organization["id"];
108+ $ organizationArr = objectToArray ($ organization );
109+ $ organizationArrRaw = $ organizationArr ['raw ' ];
110+ $ org_id = $ organizationArrRaw ["id " ];
105111 }
112+ $ _SESSION ['org_id ' ] = $ org_id ;
113+ echo $ twig ->render ("org_logged_in.html " );
114+ return true ;
106115
107- //generate portal link
108- $ linkPayloadObject = (new \WorkOS \Portal ()) -> generateLink ($ orgId , $ sessionIntent );
116+ case ("/launch_admin_portal " ):
117+ $ value = $ _GET ['value ' ];
118+ session_start ();
119+ $ linkPayloadObject = (new \WorkOS \Portal ()) -> generateLink ($ _SESSION ['org_id ' ], $ value );
109120 $ linkPayloadArray = objectToArray ($ linkPayloadObject );
110121 $ linkPayloadArrayRawData = $ linkPayloadArray ['raw ' ];
111122 $ finalLink = $ linkPayloadArrayRawData ['link ' ];
112123 Redirect ($ finalLink , false );
113-
114124 return true ;
115125 //else return HTTP 404 Error
126+
116127 default :
117128 return httpNotFound ();
118129}
0 commit comments