From 7d63ef3a44c6ae3c0a9546855fee9f67fafaaf16 Mon Sep 17 00:00:00 2001 From: Dario Solera Date: Tue, 13 Oct 2009 06:33:50 +0000 Subject: [PATCH] Fixed issue in SessionFacade.GetCurrentUser(). --- AssemblyVersion.cs | 4 ++-- Core/SessionFacade.cs | 4 ++-- Core/Users.cs | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/AssemblyVersion.cs b/AssemblyVersion.cs index 5ac5f6b..d73bb7c 100644 --- a/AssemblyVersion.cs +++ b/AssemblyVersion.cs @@ -16,5 +16,5 @@ using System.Reflection; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.0.348")] -[assembly: AssemblyFileVersion("3.0.0.348")] +[assembly: AssemblyVersion("3.0.0.349")] +[assembly: AssemblyFileVersion("3.0.0.349")] diff --git a/Core/SessionFacade.cs b/Core/SessionFacade.cs index 7d35b2b..d2c8a5d 100644 --- a/Core/SessionFacade.cs +++ b/Core/SessionFacade.cs @@ -49,10 +49,10 @@ namespace ScrewTurn.Wiki { else { string un = CurrentUsername; if(string.IsNullOrEmpty(un)) return null; - else if(object.ReferenceEquals(un, AnonymousUsername) || un == AnonymousUsername) return Users.GetAdministratorAccount(); + else if(un == AnonymousUsername) return Users.GetAnonymousAccount(); else { current = Users.FindUser(un); - SessionCache.SetCurrentUser(sessionId, current); + if(current != null) SessionCache.SetCurrentUser(sessionId, current); return current; } } diff --git a/Core/Users.cs b/Core/Users.cs index 1ad14d7..029a00b 100644 --- a/Core/Users.cs +++ b/Core/Users.cs @@ -13,6 +13,7 @@ namespace ScrewTurn.Wiki { public static class Users { private static UserInfo adminAccount = null; + private static UserInfo anonAccount = null; /// /// Gets the built-in administrator account. @@ -21,12 +22,25 @@ namespace ScrewTurn.Wiki { public static UserInfo GetAdministratorAccount() { if(adminAccount == null) { adminAccount = new UserInfo("admin", "Administrator", Settings.ContactEmail, true, DateTime.MinValue, null); - adminAccount.Groups = new string[] { Settings.AdministratorsGroup }; + adminAccount.Groups = new[] { Settings.AdministratorsGroup }; } return adminAccount; } + /// + /// Gets the fake anonymous account. + /// + /// The account. + public static UserInfo GetAnonymousAccount() { + if(anonAccount == null) { + anonAccount = new UserInfo(SessionFacade.AnonymousUsername, null, null, false, DateTime.MinValue, null); + anonAccount.Groups = new[] { Settings.AnonymousGroup }; + } + + return anonAccount; + } + /// /// The user data key pointing to page changes notification entries. ///