private static function create_endpoints_for_nextcloud($issuer) {
        $baseurl = $issuer->get('baseurl');
        // Add trailing slash to baseurl, if needed.
        if (substr($baseurl, -1) !== '/') {
            $baseurl .= '/';
        }

        $endpoints = [
            // Baseurl will be prepended later.
            'authorization_endpoint' => 'index.php/apps/oauth2/authorize',
            'token_endpoint' => 'index.php/apps/oauth2/api/v1/token',
            'userinfo_endpoint' => 'ocs/v2.php/cloud/user?format=json',
            'webdav_endpoint' => 'remote.php/webdav/',
            'ocs_endpoint' => 'ocs/v1.php/apps/files_sharing/api/v1/shares',
        ];

        foreach ($endpoints as $name => $url) {
            $record = (object) [
                'issuerid' => $issuer->get('id'),
                'name' => $name,
                'url' => $baseurl . $url,
            ];
            $endpoint = new \core\oauth2\endpoint(0, $record);
            $endpoint->create();
        }

        // Create the field mappings.
        $mapping = [
            'ocs-data-email' => 'email',
            'ocs-data-id' => 'username',
        ];
        foreach ($mapping as $external => $internal) {
            $record = (object) [
                'issuerid' => $issuer->get('id'),
                'externalfield' => $external,
                'internalfield' => $internal
            ];
            $userfieldmapping = new \core\oauth2\user_field_mapping(0, $record);
            $userfieldmapping->create();
        }
    }
private static function create_endpoints_for_nextcloud($issuer) {
        $baseurl = $issuer->get('baseurl');
        // Add trailing slash to baseurl, if needed.
        if (substr($baseurl, -1) !== '/') {
            $baseurl .= '/';
        }

        $endpoints = [
            // Baseurl will be prepended later.
            'authorization_endpoint' => 'index.php/apps/oauth2/authorize',
            'token_endpoint' => 'index.php/apps/oauth2/api/v1/token',
            'userinfo_endpoint' => 'ocs/v2.php/cloud/user?format=json',
            'webdav_endpoint' => 'remote.php/webdav/',
            'ocs_endpoint' => 'ocs/v1.php/apps/files_sharing/api/v1/shares',
        ];

        foreach ($endpoints as $name => $url) {
            $record = (object) [
                'issuerid' => $issuer->get('id'),
                'name' => $name,
                'url' => $baseurl . $url,
            ];
            $endpoint = new \core\oauth2\endpoint(0, $record);
            $endpoint->create();
        }

        // Create the field mappings.
        $mapping = [
            'ocs-data-email' => 'email',
            'ocs-data-id' => 'username',
        ];
        foreach ($mapping as $external => $internal) {
            $record = (object) [
                'issuerid' => $issuer->get('id'),
                'externalfield' => $external,
                'internalfield' => $internal
            ];
            $userfieldmapping = new \core\oauth2\user_field_mapping(0, $record);
            $userfieldmapping->create();
        }
    }
private static function create_endpoints_for_nextcloud ( $ issuer ) { $ baseurl = $ issuer -> get ( 'baseurl' ) ; // Add trailing slash to baseurl, if needed. if ( substr ( $ baseurl , - 1 ) !== '/' ) { $ baseurl .= '/' ; } $ endpoints = [ // Baseurl will be prepended later. 'authorization_endpoint' => 'index.php/apps/oauth2/authorize' , 'token_endpoint' => 'index.php/apps/oauth2/api/v1/token' , 'userinfo_endpoint' => 'ocs/v2.php/cloud/user?format=json' , 'webdav_endpoint' => 'remote.php/webdav/' , 'ocs_endpoint' => 'ocs/v1.php/apps/files_sharing/api/v1/shares' , ] ; foreach ( $ endpoints as $ name => $ url ) { $ record = ( object ) [ 'issuerid' => $ issuer -> get ( 'id' ) , 'name' => $ name , 'url' => $ baseurl . $ url , ] ; $ endpoint = new \ core \ oauth2 \ endpoint ( 0 , $ record ) ; $ endpoint -> create ( ) ; } // Create the field mappings. $ mapping = [ 'ocs-data-email' => 'email' , 'ocs-data-id' => 'username' , ] ; foreach ( $ mapping as $ external => $ internal ) { $ record = ( object ) [ 'issuerid' => $ issuer -> get ( 'id' ) , 'externalfield' => $ external , 'internalfield' => $ internal ] ; $ userfieldmapping = new \ core \ oauth2 \ user_field_mapping ( 0 , $ record ) ; $ userfieldmapping -> create ( ) ; } }
Create endpoints for nextcloud issuers.
@param issuer $issuer issuer the endpoints should be created for.
@return mixed
@throws \coding_exception
@throws \core\invalid_persistent_exception
Create endpoints for nextcloud issuers .