Awesome code cleanup; de-duplicate the security group display code.
Patch by kareila.
diffs (134 lines):
diff -r 57744754f564 -r 1bfddd15a0c0 cgi-bin/LJ/Entry.pm
--- a/cgi-bin/LJ/Entry.pm Wed Aug 26 21:08:37 2009 -0500
+++ b/cgi-bin/LJ/Entry.pm Thu Aug 27 05:17:36 2009 +0000
@@ -942,27 +942,7 @@ sub group_names {
my $poster = $self->poster;
return "" unless $remote && $poster && $poster->equals( $remote );
- my %group_ids = ( map { $_ => 1 } grep { $self->allowmask & ( 1 << $_ ) }
1..60 );
- return "" unless scalar( keys %group_ids ) > 0;
-
- my $groups = $poster->trust_groups || {};
- if ( keys %$groups ) {
- my @friendgroups = ();
-
- foreach my $groupid (keys %$groups) {
- next unless $group_ids{$groupid};
-
- my $name = LJ::ehtml($groups->{$groupid}->{groupname});
- my $url = LJ::eurl($poster->journal_base .
"/security/group:$name");
-
- my $group_text = $remote->get_cap("security_filter") ||
$poster->get_cap("security_filter") ? "<a href='$url'>$name</a>" : $name;
- push @friendgroups, $group_text;
- }
-
- return join(', ', @friendgroups) if @friendgroups;
- }
-
- return "";
+ return $poster->security_group_display( $self->allowmask );
}
sub statusvis {
diff -r 57744754f564 -r 1bfddd15a0c0 cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm Wed Aug 26 21:08:37 2009 -0500
+++ b/cgi-bin/LJ/User.pm Thu Aug 27 05:17:36 2009 +0000
@@ -3592,6 +3592,37 @@ sub recent_entries {
}
+sub security_group_display {
+ my ( $u, $allowmask ) = @_;
+ return '' unless LJ::isu( $u );
+ return '' unless defined $allowmask;
+
+ my $remote = LJ::get_remote() or return '';
+ my $use_urls = $remote->get_cap( "security_filter" ) || $u->get_cap(
"security_filter" );
+
+ # see which group ids are in the security mask
+ my %group_ids = ( map { $_ => 1 } grep { $allowmask & ( 1 << $_ ) } 1..60
);
+ return '' unless scalar( keys %group_ids ) > 0;
+
+ my @ret;
+
+ my $groups = $u->trust_groups || {};
+ foreach my $groupid ( keys %$groups ) {
+ next unless $group_ids{$groupid}; # not in mask
+
+ my $name = LJ::ehtml( $groups->{$groupid}->{groupname} );
+ if ( $use_urls ) {
+ my $url = LJ::eurl( $u->journal_base . "/security/group:$name" );
+ push @ret, "<a href='$url'>$name</a>";
+ } else {
+ push @ret, $name;
+ }
+ }
+
+ return join( ', ', @ret ) if @ret;
+}
+
+
sub set_draft_text {
my ($u, $draft) = @_;
my $old = $u->draft_text;
diff -r 57744754f564 -r 1bfddd15a0c0 htdocs/preview/entry.bml
--- a/htdocs/preview/entry.bml Wed Aug 26 21:08:37 2009 -0500
+++ b/htdocs/preview/entry.bml Thu Aug 27 05:17:36 2009 +0000
@@ -169,26 +169,8 @@
}
# custom friend groups
- my %group_ids = ( map { $_ => 1 } grep { $req{allowmask} & ( 1 << $_ )
} 1..60 );
-
- if ( scalar( keys %group_ids ) > 0 ) {
- my $groups = $u->trust_groups || {};
- if ( keys %$groups ) {
- my @trust_groups = ();
-
- foreach my $groupid ( keys %$groups ) {
- next unless $group_ids{$groupid};
-
- my $name = LJ::ehtml( $groups->{$groupid}->{groupname} );
- my $url = LJ::eurl( $u->journal_base .
"/security/group:$name" );
-
- my $group_text = $u->get_cap( "security_filter" ) ? "<a
href='$url'>$name</a>" : $name;
- push @trust_groups, $group_text;
- }
-
- $current{Groups} = join( ', ', @trust_groups ) if
@trust_groups;
- }
- }
+ $current{Groups} = $u->security_group_display( $req{allowmask} );
+ delete $current{Groups} unless $current{Groups};
my @taglist = ();
LJ::Tags::is_valid_tagstring( $POST{prop_taglist}, \...@taglist );
@@ -288,27 +270,7 @@
foreach ( qw( current_music current_location current_coords
current_moodid current_mood ) );
# custom friends groups
- my $group_names;
- my %group_ids = ( map { $_ => 1 } grep { $req{allowmask} & ( 1 << $_ )
} 1..60 );
-
- if ( scalar( keys %group_ids ) > 0 ) {
- my $groups = $u->trust_groups || {};
- if ( keys %$groups ) {
- my @trust_groups = ();
-
- foreach my $groupid ( keys %$groups ) {
- next unless $group_ids{$groupid};
-
- my $name = LJ::ehtml( $groups->{$groupid}->{groupname} );
- my $url = LJ::eurl( $u->journal_base .
"/security/group:$name" );
-
- my $group_text = $u->get_cap( "security_filter" ) ? "<a
href='$url'>$name</a>" : $name;
- push @trust_groups, $group_text;
- }
-
- $group_names = join( ', ', @trust_groups ) if @trust_groups;
- }
- }
+ my $group_names = $u->security_group_display( $req{allowmask} ) ||
undef;
# format it
my $raw_subj = $req{'subject'};
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog