Rubric::WebApp

Rubric::WebApp is a web interface to Rubric.
Download

Rubric::WebApp Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Ricardo Signes
  • Publisher web site:
  • http://search.cpan.org/~rjbs/

Rubric::WebApp Tags


Rubric::WebApp Description

Rubric::WebApp is a web interface to Rubric. Rubric::WebApp is a web interface to Rubric.SYNOPSIS use strict; use warnings; use Rubric::WebApp; Rubric::WebApp->new->run();It's a CGI::Application!Rubric::WebApp provides a CGI-based interface to Rubric data. It's built on top of CGI::Application, which does most of the boring work. This module's code sets up the dispatch tables and implements the responses to various queries.REQUESTS DISPATCHRequests are mostly path-based, though some involve form submission. The basic dispatch table looks something like this: -------------+-------------------------------------------+-------------- /login | log in to a user account | login /logout | log out | logout /preferences | view or change account settings | preferences /newuser | create a new user account | newuser /verify | verify a pending user account | verify /link | view the details of entries for a link | link /post | post or edit an entry (must be logged in) | post /edit | edit an entry (must be logged in) | edit /delete | delete an entry (must be logged in) | delete /entry/ENTRY | find and display the identified entry | entry /entries/Q | find and display results for query Q | entries /~USER/TAGS | see a user's entries for given tags | (in flux) /doc/PAGE | view the named page in the documentation | docIf the system is private and no user is logged in, the default action is to display a login screen. If the system is public, or a user is logged in, the default action is to display entries.METHODSredirect($uri, $message)This method simplifies redirection; it redirects to the given URI, printing the given message as the body of the HTTP response.redirect_root($message)This is shorthand to redirect to the Rubric's root URI. It calls redirect.cgiapp_initThis method is called during CGI::Application's initialization. It sets up the session configuration.cgiapp_prerunThis method is called before the selected runmode. It checks for a login, checks for updates to result-set paging, and starts processing the request path.next_path_partThis method shifts the next item off of the request path and returns it.check_pager_dataThis method is called by cgiapp_init, and sets up parameters used for paging entry listings. The following parameters are used: per_page - how many items per page; default 25, maximum 100; stored in session; page - which page to display; default 1template($template, %variables)This method is used to render a template with both provided and default variables.Templates are rendered by calling the process method on the template renderer, which is retrieved by calling the renderer method on the WebApp.The following variables are passed by default: current_user - the currently logged-in user (a Rubric::User object) per_page - entries per page (see check_pager_data) page - which page (see check_pager_data)setupThis method, called by CGI::Application's initialization process, sets up the dispatch table for requests, as described above.teardownThis is called at the end of a request, and deletes the session of un-logged-in users.entriesThis passes off responsibility to the class named in the entries_query_class configuration option. This option defaults to Rubric::WebApp::Entries.entryThis displays the single requested entry.get_entryThis method gets the next part of the path, assumes it to be a Rubric::Entry id, and puts the corresponding entry in the "entry" parameter.linkThis runmode displays entries that point to a given link, identified either by URI or MD5 sum.get_linkThis method look for a uri or, failing that, url query parameter. If found, it finds a Rubric::Link for that URI and puts it in the "link" parameter.loginIf the user is logged in, this request is immediately redirected to the root of the Rubric site. Otherwise, a login form is provided.logoutThis run mode unsets the "current_user" parameter in the session and the WebApp object, then redirects the user to the root of the Rubric site.reset_passwordThis run mode allows a user to request that his password be reset and emailled to him.setup_reset_codeThis routine gets a reset code for the user and emails it to him.preferencesThis method displays account information for the current user. Some account settings may be changed.update_user(%prefs)This method will update the current user object with the changes in %prefs, which is passed by the preferences method.validate_prefs(%prefs)Given a set of preference updates from a form submission, this method validates them and returns a description of the validation results. This method will probably be redesigned (possibly with Data::FormValidator) in the future. Don't count on its interface.newuserIf the proper form information is present, this runmode creates a new user account. If not, it presents a form.If a user is already logged in, the user is redirected to the root of the Rubric.validate_newuser_form(%newuser)Given a set of user data from a form submission, this method validates them and returns a description of the validation results. This method will probably be redesigned (possibly with Data::FormValidator) in the future. Don't count on its interface.create_newuser(%newuser)This method creates a new user account from the given description. It sends the user a validation email (if needed) and displays an account creation page.send_reset_email_to($user)This method sends an email to the given user with a URI to reset his password.send_verification_email_to($user)This method sends a verification email to the given user.verifyThis runmode attempts to verify a user account. It expects a request to be in the form: /verify/username/verification_code get_reset_codeThis gets the next part of the path and puts it in the reset_code parameter.get_verification_codeThis gets the next part of the path and puts it in the verification_code parameter.get_userThis gets the next part of the path and puts it in the user parameter.display_entriesThis method searches (with Rubric::Entry) for entries matching the requested user and tags. It pages the result (with page_entries) and renders the resulting page with render_entries.page_entries($iterator)Given a Class::DBI::Iterator, this method sets up parameters describing the current page. Most importantly, it retrieves an Iterator for the slice of entries representing the current page. The following parameters are set: entries - a Class::DBI::Iterator for the current page's entries count - the number of entries in the entire set pages - the number of pages the set spansrender_entriesThis method renders a template to display the set of entries set up by page_entries.editIf the user isn't logged in, it redirects to demand a login. If he is, it displays a post form, completed with the given entry's data.postThis method wants to be simplified.If the user isn't logged in, it redirects to demand a login. If he is, it checks whether it can create a new entry. If so, it tries to. If not, it displays a form for doing so. If the user already has an entry for the given URI, the existing entry is passed to the form renderer.If a new entry is created, the user is redirected to his entry listing.post_formThis method renders a form for the user to create a new entry.deleteThis method wants to be simplified. It's largely copied from post.If the user isn't logged in, it redirects to demand a login. If he is, it checks whether the user has an entry for the given URI. If so, it's deleted.Either way, the user is redirected to his entry listing.docThis runmode returns a mostly-static document from the template path.get_docThis gets the next part of the path and puts it in the doc_page parameter.Requirements:· Perl Requirements: · Perl


Rubric::WebApp Related Software