[dw-free] Visibility of information and who can view information on profile page
[commit: http://hg.dwscoalition.org/dw-free/rev/bdd7981886a2]
http://bugs.dwscoalition.org/show_bug.cgi?id=1580
Adds visual indicator of security level on profile information
Patch by
emclaughlin.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1580
Adds visual indicator of security level on profile information
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/DW/Logic/ProfilePage.pm
- htdocs/profile.bml
-------------------------------------------------------------------------------- diff -r 6183b2b0d469 -r bdd7981886a2 cgi-bin/DW/Logic/ProfilePage.pm --- a/cgi-bin/DW/Logic/ProfilePage.pm Fri Sep 09 19:53:54 2011 +0800 +++ b/cgi-bin/DW/Logic/ProfilePage.pm Mon Sep 12 15:29:32 2011 +0800 @@ -402,15 +402,16 @@ my $bdate = $u->prop( 'bdate' ); if ( $bdate && $bdate ne "0000-00-00" ) { $ret->[0] = LJ::Lang::ml( '.label.birthdate' ); + $ret->[1] = $self->security_image( $u->opt_sharebday ); my ($year, $mon, $day) = split /-/, $bdate; my $moname = LJ::Lang::month_short_ml( $mon ); $day += 0; if ( $u->bday_string =~ /\d+-\d+-\d+/ ) { - $ret->[1] = "$moname $day, $year"; + $ret->[1] .= "$moname $day, $year"; } elsif ( $u->bday_string =~ /\d+-\d+/ ) { - $ret->[1] = "$moname $day"; + $ret->[1] .= "$moname $day"; } else { - $ret->[1] = $u->bday_string; + $ret->[1] .= $u->bday_string; } } } @@ -435,6 +436,7 @@ my $ecity = LJ::eurl( $city ); my $ecountry = LJ::eurl( $country ); my $estate = ""; + my $secimg = $self->security_image( $u->opt_showlocation ); if ( $country ) { my %countries = (); @@ -443,6 +445,9 @@ $country_ret = LJ::is_enabled( 'directory' ) ? { url => "$LJ::SITEROOT/directory?opt_sort=ut&s_loc=1&loc_cn=$ecountry", text => $countries{ $country } } : $countries{ $country }; + if ( !$state && !$city ) { + $country_ret->{secimg} = $secimg; + } } if ( $state ) { @@ -456,6 +461,9 @@ $state_ret = $country && LJ::is_enabled( 'directory' ) ? { url => "$LJ::SITEROOT/directory?opt_sort=ut&s_loc=1&loc_cn=$ecountry&loc_st=$estate", text => LJ::ehtml( $state ) } : LJ::ehtml( $state ); + if ( !$city ) { + $state_ret->{secimg} = $secimg; + } } if ( $city ) { @@ -463,6 +471,7 @@ $city_ret = $country && LJ::is_enabled( 'directory' ) ? { url => "$LJ::SITEROOT/directory?opt_sort=ut&s_loc=1&loc_cn=$ecountry&loc_st=$estate&loc_ci=$ecity", text => $city } : $city; + $city_ret->{secimg} = $secimg; } push @$ret, $city_ret, $state_ret, $country_ret; @@ -974,5 +983,22 @@ return @ret; } +# returns image link based on privacy settings +sub security_image { + my ( $self, $code ) = @_; + my %img = ( + R => [ 'registered', 'identity/user.png' ], + F => [ 'trusted', 'entry/locked.png' ], + N => [ 'private', 'entry/private.png' ], + ); + return '' unless $img{$code}; + my ( $text, $imgfile ) = @{ $img{$code} }; + $text = LJ::Lang::ml( 'entryform.security' ) . " $text"; + $imgfile = "$LJ::SITEROOT/img/silk/$imgfile"; + return " (<img alt='$text' title='$text' width='16' height='16'" + . " style='vertical-align: bottom' src='$imgfile' />) "; +} + + 1; diff -r 6183b2b0d469 -r bdd7981886a2 htdocs/profile.bml --- a/htdocs/profile.bml Fri Sep 09 19:53:54 2011 +0800 +++ b/htdocs/profile.bml Mon Sep 12 15:29:32 2011 +0800 @@ -175,6 +175,7 @@ return $l unless ref $l eq 'HASH'; if ( $l->{text} ) { + return qq($l->{secimg}<a href="$l->{url}">$l->{text}</a>) if $l->{secimg}; return qq(<a href="$l->{url}">$l->{text}</a>) if $l->{url}; return $l->{text}; } elsif ( $l->{email} ) { @@ -450,7 +451,8 @@ } if ( my @contacts = $profile->contact_rows ) { - $bibody .= qq( <div class="contact"><p class="section_body_title">$ML{'.contact.header'}</p> ); + my $secimg = $profile->security_image( $u->opt_showcontact ); + $bibody .= qq( <div class="contact"><p class="section_body_title">$ML{'.contact.header'}$secimg</p> ); $bibody .= join( '<br />', map { $linkify->( $_ ) } @contacts ); $bibody .= q{ </div> }; }; --------------------------------------------------------------------------------