NAME
Metabase::Gateway - Manage Metabase fact submission
SYNOPSIS
my $mg = Metabase::Gateway->new(
fact_classes => \@valid_fact_classes,
librarian => $librarian,
private_librarian => $private_librarian,
);
$mg->handle_submission( $fact_struct, $user_guid, $user_secret);
DESCRIPTION
The Metabase::Gateway class manages submissions to the Metabase. It provides fact and submitter validation or authorization before storing new facts in a Metabase.
USAGE
new
my $mg = Metabase::Gateway->new(
fact_classes => \@valid_fact_classes,
public_librarian => $public_librarian,
private_librarian => $private_librarian,
);
Gateway constructor. Takes three required attributes fact_classes
, public_librarian
and private_librarian
. See below for details.
ATTRIBUTES
approved_types
Returns a list of approved fact types. Automatically generated; cannot be initialized. Used for validating submitted facts.
A "type" is a class name with "::" converted to "-", so this attribute returns an arrayref of the fact_classes
attribute converted to types.
disable_security
A boolean option. If true, submitter profiles will not be authenticated. (This is generally useful for testing, only.) Default is false.
allow_registration
A boolean option. If true, new submitter profiles and secrets may be stored. Default is true.
fact_classes
Array reference containing a list of valid Metabase::Fact subclasses. Only facts from these classes may be added to the Metabase. Required.
public_librarian
A librarian object to manage fact data. Required.
private_librarian
A librarian object to manage user authentication data and possibly other facts that should be segregated from searchable and retrievable facts. This should not be the same as the public_librarian. Required.
METHODS
enqueue
$mg->enqueue( $fact );
Add a fact from a user (identified by a profile) via the public_librarian. Used internally by handle_submission.
handle_submission
$mg->handle_submission( $fact_struct, $user_guid, $user_secret);
Extract a fact a deserialized data structure and add it to the Metabase via the public_librarian. The fact is regenerated from the as_struct
method.
handle_registration
$mg->handle_registration( $profile_struct, $secret_struct );
Extract a new user profile and secret from deserialized data structures and add them via the public_librarian and private_librarian, respectively.
BUGS
Please report any bugs or feature using the CPAN Request Tracker. Bugs can be submitted through the web interface at http://rt.cpan.org/Dist/Display.html?Queue=Metabase
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
AUTHOR
David A. Golden (DAGOLDEN)
Ricardo J. B. Signes (RJBS)
COPYRIGHT AND LICENSE
Portions Copyright (c) 2008-2010 by David A. Golden
Portions Copyright (c) 2008-2009 by Ricardo J. B. Signes
Licensed under terms of Perl itself (the "License"). You may not use this file except in compliance with the License. A copy of the License was distributed with this file or you may obtain a copy of the License from http://dev.perl.org/licenses/
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.