Page 1 of 1

Get logged in user with Smarty

PostPosted: Tue Dec 18, 2012 12:18 pm
by Gershy
Hey all, how do I use smarty to get the name of the logged in user? It would be easy if the authentication tool were included in $ENV, like $ENV.AUTHENTICATION_TOOL

then I could just do
Code: Select all
{$ENV.AUTHENTICATION_TOOL->getLoggedInUser()->val('Name')}


But it doesn't exist, so in lieu what's the best way to go about this?

Re: Get logged in user with Smarty

PostPosted: Tue Dec 18, 2012 12:58 pm
by Gershy
figured it out; answer is easy: {$ENV.APPLICATION_OBJECT->getAuthenticationTool()} gets you to the authentication tool. The rest is simple.

Another way I figured out which I like more is in the beforeHandleRequest() function in the application delegate, you can use the following code to get the skintool;
Code: Select all
import('Dataface/SkinTool.php');
$sTool = Dataface_SkinTool::getInstance();

and you can then insert any value you wish using the assign function. Say I want to get the "LoggedInUserName" with smarty as {$LoggedInUser} I could say
Code: Select all
$user =& Dataface_AuthenticationTool::getInstance()->getLoggedInUser();
$sTool->assign('LoggedInName', $user->val('Name'));

Re: Get logged in user with Smarty

PostPosted: Tue Dec 18, 2012 3:49 pm
by shannah
Yes. That will work. An alternative is also:

{$ENV.user} To get the Dataface_Record object for the currently logged in user.
or
{$ENV.username} To get the username of the currently logged in user.

You can see most of the environment variables that are set in the Skin tool source.
http://weblite.ca/svn/dataface/core/tru ... inTool.php

Steve