[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
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> };
};
--------------------------------------------------------------------------------

no subject