Difference between revisions of "User login.pl"
(Added actually file name in bold. Tidied up code formatting.) |
|||
| Line 1: | Line 1: | ||
[[Category:Authentication]] | [[Category:Authentication]] | ||
| − | == | + | '''user_login.pl''' contains configuration for how to check whether and who a user should be logged in as using a function defined under '''$c->{check_user_password}'''. |
| + | |||
| + | ==Example== | ||
$c->{check_user_password} = sub { | $c->{check_user_password} = sub { | ||
| − | + | my( $repo, $username, $password ) = @_; | |
| − | + | return $ok ? $username : undef; | |
}; | }; | ||
| Line 14: | Line 16: | ||
==User masquerading== | ==User masquerading== | ||
| − | |||
| − | |||
This tweak for check_user_password enables administrators to log into a system as any other user by using a special "/[username]" postfix to their normal username. | This tweak for check_user_password enables administrators to log into a system as any other user by using a special "/[username]" postfix to their normal username. | ||
$c->{check_user_password} = sub { | $c->{check_user_password} = sub { | ||
| − | + | my( $repo, $u, $password ) = @_; | |
| − | + | my( $username, $alias ) = split /\//, $u; | |
| − | + | ... normal authentication for $username | |
| − | + | if( $alias && $user->get_type eq "admin" ) | |
| − | + | { | |
| − | + | $user = $repo->user_by_username( $alias ); | |
| − | + | $username = defined $user ? $user->value( "username" ) : undef; | |
| − | + | } | |
| − | + | return $username; | |
} | } | ||
Latest revision as of 08:16, 31 January 2022
user_login.pl contains configuration for how to check whether and who a user should be logged in as using a function defined under $c->{check_user_password}.
Example
$c->{check_user_password} = sub {
my( $repo, $username, $password ) = @_;
return $ok ? $username : undef;
};
LDAP Authentication
See LDAP.
User masquerading
This tweak for check_user_password enables administrators to log into a system as any other user by using a special "/[username]" postfix to their normal username.
$c->{check_user_password} = sub {
my( $repo, $u, $password ) = @_;
my( $username, $alias ) = split /\//, $u;
... normal authentication for $username
if( $alias && $user->get_type eq "admin" )
{
$user = $repo->user_by_username( $alias );
$username = defined $user ? $user->value( "username" ) : undef;
}
return $username;
}