Changeset 7179


Ignore:
Timestamp:
Jun 20, 2016, 1:07:21 PM (5 years ago)
Author:
Nicklas Nordborg
Message:

References #2022: Start page extension doesn't work if it requires an active project

The last active project is now activated before the start page extension is invoked.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.9-stable/www/login.jsp

    r7114 r7179  
    5151  String cmd = request.getParameter("cmd");
    5252  String again = request.getParameter("again");
    53   boolean useAutoStartPage = Values.getBoolean(request.getParameter("useAutoStartPage"));
     53  boolean useAutoStartPage = false;
    5454  String root = request.getContextPath()+"/";
    5555  String redirect = Values.getStringOrNull(request.getParameter("redirect"));
     
    6161  {
    6262    String password = request.getParameter("password");
    63     DbControl dc = null;
    6463    try
    6564    {
     
    6766      LoginRequest loginRequest = new LoginRequest(login, password);
    6867      sc.login(loginRequest);
    69      
    70       if (useAutoStartPage)
    71       {
    72         String startPageId = sc.getUserClientSetting("start-page-id");
    73         if (startPageId != null)
    74         {
    75           dc = sc.newDbControl();
    76           User user = User.getById(dc, sc.getLoggedInUserId());
    77           JspContext context = ExtensionsControl.createContext(dc, pageContext, null, user);
    78           ExtensionsInvoker<StartPageAction> invoker = (ExtensionsInvoker<StartPageAction>)ExtensionsControl.useExtensions(context, "net.sf.basedb.clients.web.start-page");
    79           Iterator<StartPageAction> it = invoker.iterator();
    80           while (it.hasNext())
    81           {
    82             try
    83             {
    84               StartPageAction action = it.next();
    85               if (startPageId.equals(action.getId()))
    86               {
    87                 String startPage = action.getUrl();
    88                 if (startPage != null)
    89                 {
    90                   redirect = startPage.replace("$SESSION-ID$", sc.getId());
    91                 }
    92                 break;
    93               }
    94             }
    95             catch (RuntimeException ex)
    96             {}
    97           }
    98         }
    99       }
     68      useAutoStartPage = Values.getBoolean(request.getParameter("useAutoStartPage"));
    10069    }
    10170    catch (LoginException ex)
     
    11887      errorTitle = "Permission denied";
    11988      errorMessage = ex.getMessage();
    120     }
    121     finally
    122     {
    123       if (dc != null) dc.close();
    12489    }
    12590  }
     
    157122  {
    158123    int lastActiveProjectId = Values.getInt(sc.getUserClientSetting("projects.lastactive"));
    159     if (lastActiveProjectId != 0)
    160     {
    161       DbControl dc = sc.newDbControl();
    162       try
     124    String startPageId = sc.getUserClientSetting("start-page-id");
     125   
     126    DbControl dc = sc.newDbControl();
     127    try
     128    {
     129      if (lastActiveProjectId != 0)
    163130      {
    164131        Project p = Project.getById(dc, lastActiveProjectId);
    165132        sc.setActiveProject(p);
    166133      }
    167       catch (Throwable t)
    168       {}
    169       finally
    170       {
    171         if (dc != null) dc.close();
    172       }
    173     }
    174   }
     134     
     135      if (useAutoStartPage && startPageId != null)
     136      {
     137        User user = User.getById(dc, sc.getLoggedInUserId());
     138        JspContext context = ExtensionsControl.createContext(dc, pageContext, null, user);
     139        ExtensionsInvoker<StartPageAction> invoker = (ExtensionsInvoker<StartPageAction>)ExtensionsControl.useExtensions(context, "net.sf.basedb.clients.web.start-page");
     140        Iterator<StartPageAction> it = invoker.iterator();
     141        while (it.hasNext())
     142        {
     143          try
     144          {
     145            StartPageAction action = it.next();
     146            if (startPageId.equals(action.getId()))
     147            {
     148              String startPage = action.getUrl();
     149              if (startPage != null)
     150              {
     151                redirect = startPage.replace("$SESSION-ID$", sc.getId());
     152              }
     153              break;
     154            }
     155          }
     156          catch (RuntimeException ex)
     157          {}
     158        }
     159      }
     160    }
     161    catch (Throwable t)
     162    {}
     163    finally
     164    {
     165      if (dc != null) dc.close();
     166    }
    175167 
     168  }
     169
    176170  if ("1".equals(again))
    177171  {
Note: See TracChangeset for help on using the changeset viewer.