wip
This commit is contained in:
parent
3a68c963fe
commit
f034d1024d
2 changed files with 21 additions and 11 deletions
|
@ -259,9 +259,9 @@ $utopia->post('/v1/teams/:teamId/memberships')
|
||||||
->param('email', '', function () { return new Email(); }, 'New team member email address.')
|
->param('email', '', function () { return new Email(); }, 'New team member email address.')
|
||||||
->param('name', '', function () { return new Text(100); }, 'New team member name.', true)
|
->param('name', '', function () { return new Text(100); }, 'New team member name.', true)
|
||||||
->param('roles', [], function () { return new ArrayList(new Text(128)); }, 'Invite roles array. Learn more about [roles and permissions](/docs/permissions).')
|
->param('roles', [], function () { return new ArrayList(new Text(128)); }, 'Invite roles array. Learn more about [roles and permissions](/docs/permissions).')
|
||||||
->param('redirect', '', function () use ($clients) { return new Host($clients); }, 'Reset page to redirect user back to your app from the invitation email.')
|
->param('url', '', function () use ($clients) { return new Host($clients); }, 'URL to redirect the user back to your app from the invitation email.') // TODO add our own built-in confirm page
|
||||||
->action(
|
->action(
|
||||||
function ($teamId, $email, $name, $roles, $redirect) use ($response, $register, $project, $user, $audit, $projectDB) {
|
function ($teamId, $email, $name, $roles, $url) use ($response, $register, $project, $user, $audit, $projectDB) {
|
||||||
$name = (empty($name)) ? $email : $name;
|
$name = (empty($name)) ? $email : $name;
|
||||||
$team = $projectDB->getDocument($teamId);
|
$team = $projectDB->getDocument($teamId);
|
||||||
|
|
||||||
|
@ -354,9 +354,9 @@ $utopia->post('/v1/teams/:teamId/memberships')
|
||||||
throw new Exception('Failed saving membership to DB', 500);
|
throw new Exception('Failed saving membership to DB', 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
$redirect = Template::parseURL($redirect);
|
$url = Template::parseURL($url);
|
||||||
$redirect['query'] = Template::mergeQuery(((isset($redirect['query'])) ? $redirect['query'] : ''), ['inviteId' => $membership->getUid(), 'teamId' => $team->getUid(), 'userId' => $invitee->getUid(), 'secret' => $secret]);
|
$url['query'] = Template::mergeQuery(((isset($url['query'])) ? $url['query'] : ''), ['inviteId' => $membership->getUid(), 'teamId' => $team->getUid(), 'userId' => $invitee->getUid(), 'secret' => $secret]);
|
||||||
$redirect = Template::unParseURL($redirect);
|
$url = Template::unParseURL($url);
|
||||||
|
|
||||||
$body = new Template(__DIR__.'/../../config/locales/templates/'.Locale::getText('auth.emails.invitation.body'));
|
$body = new Template(__DIR__.'/../../config/locales/templates/'.Locale::getText('auth.emails.invitation.body'));
|
||||||
$body
|
$body
|
||||||
|
@ -364,7 +364,7 @@ $utopia->post('/v1/teams/:teamId/memberships')
|
||||||
->setParam('{{project}}', $project->getAttribute('name', ['[APP-NAME]']))
|
->setParam('{{project}}', $project->getAttribute('name', ['[APP-NAME]']))
|
||||||
->setParam('{{team}}', $team->getAttribute('name', '[TEAM-NAME]'))
|
->setParam('{{team}}', $team->getAttribute('name', '[TEAM-NAME]'))
|
||||||
->setParam('{{owner}}', $user->getAttribute('name', ''))
|
->setParam('{{owner}}', $user->getAttribute('name', ''))
|
||||||
->setParam('{{redirect}}', $redirect)
|
->setParam('{{redirect}}', $url)
|
||||||
;
|
;
|
||||||
|
|
||||||
$mail = $register->get('smtp'); /* @var $mail \PHPMailer\PHPMailer\PHPMailer */
|
$mail = $register->get('smtp'); /* @var $mail \PHPMailer\PHPMailer\PHPMailer */
|
||||||
|
@ -387,8 +387,9 @@ $utopia->post('/v1/teams/:teamId/memberships')
|
||||||
;
|
;
|
||||||
|
|
||||||
$response
|
$response
|
||||||
//->setStatusCode(Response::STATUS_CODE_CREATED) TODO change response of this endpoint
|
->setStatusCode(Response::STATUS_CODE_CREATED) // TODO change response of this endpoint
|
||||||
->noContent();
|
->json($membership->getArrayCopy())
|
||||||
|
;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -262,16 +262,25 @@ trait TeamsBase
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCreateTeamMembership():array
|
/**
|
||||||
|
* @depends testCreateTeam
|
||||||
|
*/
|
||||||
|
public function testCreateTeamMembership($data):array
|
||||||
{
|
{
|
||||||
|
$uid = (isset($data['teamUid'])) ? $data['teamUid'] : '';
|
||||||
|
$email = uniqid().'friend@localhost.test';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for SUCCESS
|
* Test for SUCCESS
|
||||||
*/
|
*/
|
||||||
$response = $this->client->call(Client::METHOD_POST, '/teams', array_merge([
|
$response = $this->client->call(Client::METHOD_POST, '/teams/'.$uid.'/memberships', array_merge([
|
||||||
'content-type' => 'application/json',
|
'content-type' => 'application/json',
|
||||||
'x-appwrite-project' => $this->getProject()['$uid'],
|
'x-appwrite-project' => $this->getProject()['$uid'],
|
||||||
], $this->getHeaders()), [
|
], $this->getHeaders()), [
|
||||||
'name' => 'Demo'
|
'email' => $email,
|
||||||
|
'name' => 'Friend User',
|
||||||
|
'roles' => ['admin', 'editor'],
|
||||||
|
'url' => 'http://localhost:5000/join-us#title'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$teamUid = $response['body']['$uid'];
|
$teamUid = $response['body']['$uid'];
|
||||||
|
|
Loading…
Reference in a new issue