Wednesday, May 28, 2014

Restrict non-admin users to open multiple sessions in AX

Few times client asked to restrict their users to not open AX sessions multiple times. As It may impact on performance somehow. The following code snipet can do this job for you.

NOTE: Please take backup of your application before copying code

Copy Paste the Following Code in startupPost method of info class in AOT

void startupPost()
{
   // To restrict user login form second login
   xSession session;
   SysClientSessions SysClientSessions;
   UserId currentUserId;
   int counter;


   currentUserId = curUserId();

   if(currentUserId!="Admin")// Allow Admin User to login multiple time
   {
      while select SysClientSessions
         where SysClientSessions.userId == currentUserId
         &&     SysClientSessions.Status == 1 // 1 : Login 0 : Logout
      {
         session = new xSession(SysClientSessions.SessionId, true);
         if (session && session.userId())
         {
            counter++;
         }
      }

      if (counter >= 2)
      {
         Box::stop("Already Logged-in : The same user id can't log in twice.");
         infolog.shutDown(true);
      }
   }
}

No comments:

Post a Comment

I will appreciate your comments !

How to enable new Microsoft teams - Public Preview!

New Microsoft Teams is just AWESOME, quick but useful post below shows how you have this preview feature to make your life EASY!  Open Micr...