.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Apache2::SiteControl::User 3pm" .TH Apache2::SiteControl::User 3pm "2018-08-31" "perl v5.26.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Apache2::SiteControl::User \- User representations .SS "\s-1SYNOPSIS\s0" .IX Subsection "SYNOPSIS" .Vb 1 \& my $user = Apache2::SiteControl\->getCurrentUser($r); \& \& # $r is the apache request object \& \& # Checking out the user\*(Aqs name: \& if($user\->getUsername eq \*(Aqsam\*(Aq) { ... } \& \& ... \& \& # Working with attributes (session persistent data) \& my $ssn = $user\->getAttribute(\*(Aqssn\*(Aq); \& $user\->setAttribute($r, \*(Aqssn\*(Aq, \*(Aq333\-555\-6666\*(Aq); \& \& # Removing/invalidating session for the user \& $user\->logout($r); .Ve .SS "\s-1DESCRIPTION\s0" .IX Subsection "DESCRIPTION" The SiteControl system has a base concept of a user which includes the user's name, persistent attributes (which are persistent via session), and support for user logout. .PP It is assumed that you will be working from mod_perl, and some of the methods require an Apache request object. The request object is used by some methods to coordinate access to the actual session information in the underlying system (for storing attributes and implementing logout). .PP User objects are created by a factory (by default Apache2::SiteControl::UserFactory), so if you subclass User, you must understand the complete interaction between the factory (which is responsible for interfacing with persistence), the SiteControl, etc. .PP The default implementation of User and UserFactory use AuthCookie to manage the sessions, and Apache::Session::File to store the various details about a user to disk. .PP If you are using Apache2::SiteControl::User and Apache::SiteControl::UserFactory (the default and recommended), then you should configure the following parameters in your apache configuration file: .PP .Vb 4 \& # This is where the session data files will be stored \& SiteControlSessions directory_name \& # This is where the locks will be stored \& SiteControlLocks directory_name .Ve .PP These two directories should be different, and should be readable and writable by the apache daemon only. They must exist before trying to use SiteControl. .SH "METHODS" .IX Header "METHODS" .IP "\fBgetUsername\fR Get the name that the current user used to log in." 8 .IX Item "getUsername Get the name that the current user used to log in." .PD 0 .IP "\fBgetAttribute($name)\fR Get the value of a previously stored attribute. Returns undef is there is no value." 8 .IX Item "getAttribute($name) Get the value of a previously stored attribute. Returns undef is there is no value." .IP "\fBsetAttribute($request, \f(CB$name\fB, \f(CB$value\fB)\fR Add an attribute (scalar data only) to the current session. The current apache request object is required (in order to figure out the session). Future versions may support more complex storage in the session. This attribute will stay associated with this user until they log out." 8 .IX Item "setAttribute($request, $name, $value) Add an attribute (scalar data only) to the current session. The current apache request object is required (in order to figure out the session). Future versions may support more complex storage in the session. This attribute will stay associated with this user until they log out." .IP "\fBlogout($request)\fR Log the user out. If you do not pass the current apache request, then this method will log an error to the apache error logs, and the user's session will continue to exist." 8 .IX Item "logout($request) Log the user out. If you do not pass the current apache request, then this method will log an error to the apache error logs, and the user's session will continue to exist." .PD .SH "SEE ALSO" .IX Header "SEE ALSO" Apache2::SiteControl::UserFactory, Apache::SiteControl::ManagerFactory, Apache2::SiteControl::PermissionManager, Apache::SiteControl .SH "AUTHOR" .IX Header "AUTHOR" This module was written by Tony Kay, . .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This modules is covered by the \s-1GNU\s0 public license.