I´m using custom oAuth with the Kirby oAuth Plugin which creates a user on first login. I use the following hook to create a subpage with the username in my partners-folder as follows:
'user.create:after' => function( $user ) {
if( $user->role() != 'partner' )
return $user;
$name_array = array_filter( explode( ' ', $user->name() ) );
$last_name_slug = Str::slug( end( $name_array ) );
$first_name_slug = Str::slug( $name_array[0] );
$partners = $this->site()->find('partners');
# check for existing abbr of first name of user, if so lengthen by next following letter of first name
$i = 1;
do {
$suffix = Str::substr( $first_name_slug, 0, $i );
$exists = $partners->childrenAndDrafts()->find($last_name_slug.'-'.$suffix);
$i++;
} while( $exists );
$args = [
'template' => 'partner',
'slug' => $last_name_slug.'-'.$suffix,
'content' => [
'title' => $user->name(),
'users' => [ $user->id() ]
]
];
# Create Page and media folder
$new_page = $partners->createChild( $args );
Dir::make('content/partners/_drafts/'.$last_name_slug.'-'.$suffix.'/media');
# Impersonate Kirby super user in case oAuth user does not have sufficient permissions
$this->impersonate('kirby');
$partner_page = $this->site()->find('partners')->childrenAndDrafts()->find($new_page->uri());
$partner_page = $partner_page->changeStatus('listed','0');
},
When I create the user manually as logged in admin, everything works fine but when using oAuth login, an error occurs: “Please use a valid Page Status”. As if status is not known to the system/user.
Am i missing something? Thanks for the help in advance.