mourningdove/cgi-bin/DW/Hooks/Changelog.pm

43 lines
1.1 KiB
Perl
Raw Normal View History

2026-05-24 01:03:05 +00:00
#
# Hooks to allow posting to Changelog.
#
# Authors:
# Mark Smith <mark@dreamwidth.org>
#
# Copyright (c) 2009 by Dreamwidth Studios, LLC.
#
# This program is free software; you may redistribute it and/or modify it under
# the same terms as Perl itself. For a copy of the license, please reference
# 'perldoc perlartistic' or 'perldoc perlgpl'.
#
package DW::Hooks::Changelog;
use strict;
use LJ::Hooks;
LJ::Hooks::register_hook(
'post_noauth',
sub {
my $req = shift;
# enable or not
return 0 unless $LJ::CHANGELOG{enabled};
# the user must be posting TO the changelog journal and the
# username must be in the allow list
return 0 unless $req->{usejournal} eq $LJ::CHANGELOG{community};
return 0 unless grep { $_ eq $req->{username} } @{ $LJ::CHANGELOG{allowed_posters} || [] };
# we also enforce that the IP the request is coming from be one of
# some small list of IPs
my $ip = BML::get_remote_ip();
return 0 unless grep { $_ eq $ip } @{ $LJ::CHANGELOG{allowed_ips} || [] };
# looks good
return 1;
}
);
1;