Unverified Commit ba483a9d authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

journey: add token to share link if non-public

parent d58c5a88
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -479,6 +479,26 @@ sub status_token_ok {
	return;
}

sub journey_token_ok {
	my ( $self, $journey, $ts2_ext ) = @_;
	my $token = $self->param('token') // q{};

	my ( $eva, $ts, $ts2 ) = split( qr{-}, $token );
	if ( not $ts ) {
		return;
	}

	$ts2 //= $ts2_ext;

	if (    $eva == $journey->{from_eva}
		and $ts == $journey->{checkin_ts}
		and $ts2 == $journey->{sched_dep_ts} )
	{
		return 1;
	}
	return;
}

sub user_status {
	my ($self) = @_;

@@ -507,6 +527,8 @@ sub user_status {
		  )
		{
			if ( $candidate->{sched_dep_ts} eq $ts ) {

				# TODO pass token
				$self->redirect_to("/p/${name}/j/$candidate->{id}");
				return;
			}
@@ -707,11 +729,11 @@ sub public_journey_details {
		not(
			$visibility eq 'public'
			or (    $visibility eq 'unlisted'
				and $self->status_token_ok($journey) )
				and $self->journey_token_ok($journey) )
			or (
				$visibility eq 'travelynx'
				and (  $self->is_user_authenticated
					or $self->status_token_ok($journey) )
					or $self->journey_token_ok($journey) )
			)
		)
	  )
+6 −1
Original line number Diff line number Diff line
@@ -246,7 +246,12 @@
				</div>
				<div class="col s12 m6 l6 center-align">
					<a class="btn waves-effect waves-light action-share"
						% if ($journey_visibility eq 'public') {
							data-url="<%= url_for('public_journey', name => current_user()->{name}, id => $journey->{id} )->to_abs->scheme('https'); %>"
						% }
						% else {
							data-url="<%= url_for('public_journey', name => current_user()->{name}, id => $journey->{id} )->to_abs->scheme('https'); %>?token=<%= $journey->{from_eva} %>-<%= $journey->{checkin_ts} %>-<%= $journey->{sched_dep_ts} %>"
						% }
						data-text="<%= stash('share_text') %>"
						>
						<i class="material-icons left" aria-hidden="true">share</i> Teilen