[MKDoc-commit] [1.6] Don't load audience preferences for audiences that don't exist.

bruno at mkdoc.demon.co.uk bruno at mkdoc.demon.co.uk
Thu Feb 3 13:38:44 GMT 2005


Log Message:
-----------
[1.6] Don't load audience preferences for audiences that don't exist.
Fixes internal server error when editing preferences.  Correct solution would
be to clean up references to audiences whenever they are deleted or add check
to future fsck tool.

Tags:
----
mkdoc-1-6

Modified Files:
--------------
    mkd/flo/User:
        Preferences.pm

-------------- next part --------------
Index: Preferences.pm
===================================================================
RCS file: /var/spool/cvs/mkd/flo/User/Preferences.pm,v
retrieving revision 1.11.2.11
retrieving revision 1.11.2.12
diff -Lflo/User/Preferences.pm -Lflo/User/Preferences.pm -u -r1.11.2.11 -r1.11.2.12
--- flo/User/Preferences.pm
+++ flo/User/Preferences.pm
@@ -909,7 +909,12 @@
 {
     my $self  = shift;
     my @prefs = load flo::Record::Preference::Audience(User => $self->user);
-    my %hash  = map { $self->audience_by_id($_->audience_id)->name => $_ } @prefs;
+    my @ok_prefs = ();
+    for (@prefs)
+    {
+        push (@ok_prefs, $_) if ($self->audience_by_id($_->audience_id));
+    }
+    my %hash  = map { $self->audience_by_id($_->audience_id)->name => $_ } @ok_prefs;
     $self->_set_audience_prefs(\%hash);
 }
 


More information about the MKDoc-commit mailing list