Permissions & Authorization for Users #24

Initial Release; Includes Database and MVC refactoring
This commit is contained in:
Gary Sharp
2013-10-10 19:13:16 +11:00
parent 172ce5524a
commit a099d68915
458 changed files with 40221 additions and 12130 deletions
+30 -28
View File
@@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Web;
using Disco.Data.Repository;
using System.Threading;
using System.Reflection;
namespace Disco.Web
{
@@ -25,39 +27,50 @@ namespace Disco.Web
return true;
}
public static void InitalizeEnvironment(DiscoDataContext dbContext)
private static void InitalizeEnvironment(DiscoDataContext Database)
{
// Initialize Logging
Disco.Services.Logging.LogContext.Initalize(dbContext, DiscoApplication.SchedulerFactory);
Disco.Services.Logging.LogContext.Initalize(Database, DiscoApplication.SchedulerFactory);
// Load Organisation Name
DiscoApplication.OrganisationName = dbContext.DiscoConfiguration.OrganisationName;
DiscoApplication.MultiSiteMode = dbContext.DiscoConfiguration.MultiSiteMode;
DiscoApplication.OrganisationName = Database.DiscoConfiguration.OrganisationName;
DiscoApplication.MultiSiteMode = Database.DiscoConfiguration.MultiSiteMode;
// Setup Global Proxy
DiscoApplication.SetGlobalProxy(dbContext.DiscoConfiguration.ProxyAddress,
dbContext.DiscoConfiguration.ProxyPort,
dbContext.DiscoConfiguration.ProxyUsername,
dbContext.DiscoConfiguration.ProxyPassword);
DiscoApplication.SetGlobalProxy(Database.DiscoConfiguration.ProxyAddress,
Database.DiscoConfiguration.ProxyPort,
Database.DiscoConfiguration.ProxyUsername,
Database.DiscoConfiguration.ProxyPassword);
// Initialize User Service Interop
Disco.Services.Users.UserService.Initialize(Database,
(UserId, AdditionalProperties) => Disco.BI.Interop.ActiveDirectory.ActiveDirectory.GetUserAccount(UserId, AdditionalProperties),
(UserId, AdditionalProperties) => Disco.BI.Interop.ActiveDirectory.ActiveDirectory.GetMachineAccount(UserId, null, null, AdditionalProperties));
}
public static void InitalizeNormalEnvironment(DiscoDataContext Database)
{
InitalizeEnvironment(Database);
// Initialize Expressions
BI.Expressions.Expression.InitializeExpressions();
// Initialize Warranty Providers Plugins
Disco.Services.Plugins.Plugins.InitalizePlugins(dbContext);
Disco.Services.Plugins.Plugins.InitalizePlugins(Database);
// Initialize Scheduled Tasks
Disco.Services.Tasks.ScheduledTasks.InitalizeScheduledTasks(dbContext, DiscoApplication.SchedulerFactory, true);
Disco.Services.Tasks.ScheduledTasks.InitalizeScheduledTasks(Database, DiscoApplication.SchedulerFactory, true);
// Schedule Immediate Check for Update (if never updated, or last updated over 2 days ago)
if (dbContext.DiscoConfiguration.UpdateLastCheck == null ||
dbContext.DiscoConfiguration.UpdateLastCheck.ResponseTimestamp < DateTime.Now.AddDays(-2))
if (Database.DiscoConfiguration.UpdateLastCheck == null ||
Database.DiscoConfiguration.UpdateLastCheck.ResponseTimestamp < DateTime.Now.AddDays(-2))
{
Disco.BI.Interop.Community.UpdateCheckTask.ScheduleNow();
}
// Setup Attachment Monitor
DiscoApplication.DocumentDropBoxMonitor = new BI.DocumentTemplateBI.Importer.DocumentDropBoxMonitor(dbContext, DiscoApplication.SchedulerFactory, HttpContext.Current.Cache);
DiscoApplication.DocumentDropBoxMonitor = new BI.DocumentTemplateBI.Importer.DocumentDropBoxMonitor(Database, DiscoApplication.SchedulerFactory, HttpContext.Current.Cache);
DiscoApplication.DocumentDropBoxMonitor.StartWatching();
DiscoApplication.DocumentDropBoxMonitor.ScheduleCurrentFiles(10);
@@ -66,27 +79,16 @@ namespace Disco.Web
Disco.BI.Interop.SignalRHandlers.RepositoryMonitorNotifications.Initialize();
}
public static void InitializeUpdateEnvironment(DiscoDataContext dbContext, Version PreviousVersion)
public static void InitializeUpdateEnvironment(DiscoDataContext Database, Version PreviousVersion)
{
// Initialize Logging
Disco.Services.Logging.LogContext.Initalize(dbContext, DiscoApplication.SchedulerFactory);
// Load Organisation Name
DiscoApplication.OrganisationName = dbContext.DiscoConfiguration.OrganisationName;
DiscoApplication.MultiSiteMode = dbContext.DiscoConfiguration.MultiSiteMode;
// Setup Global Proxy
DiscoApplication.SetGlobalProxy(dbContext.DiscoConfiguration.ProxyAddress,
dbContext.DiscoConfiguration.ProxyPort,
dbContext.DiscoConfiguration.ProxyUsername,
dbContext.DiscoConfiguration.ProxyPassword);
InitalizeEnvironment(Database);
// Initialize Scheduled Tasks
Disco.Services.Tasks.ScheduledTasks.InitalizeScheduledTasks(dbContext, DiscoApplication.SchedulerFactory, true);
Disco.Services.Tasks.ScheduledTasks.InitalizeScheduledTasks(Database, DiscoApplication.SchedulerFactory, true);
// Import MAC Address Migration
if (PreviousVersion != null && PreviousVersion < new Version(1, 2, 910, 0))
Disco.BI.DeviceBI.Migration.LogMacAddressImporting.SetRequired(dbContext);
Disco.BI.DeviceBI.Migration.LogMacAddressImporting.SetRequired(Database);
}
public static void DisposeEnvironment()
+3 -5
View File
@@ -1,9 +1,6 @@
using System.IO;
using Disco.Services.Web.Bundles;
using System.IO;
using System.Web;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Disco.Web.Extensions.MvcExtensions.Bundles;
namespace Disco.Web
{
@@ -23,6 +20,7 @@ namespace Disco.Web
BundleTable.Add(new Bundle("~/Style/Credits", Links.ClientSource.Style.Credits_min_css));
BundleTable.Add(new Bundle("~/Style/InitialConfig", Links.ClientSource.Style.InitialConfig_min_css));
BundleTable.Add(new Bundle("~/Style/jQueryUI/dynatree", Links.ClientSource.Style.jQueryUI.dynatree.ui_dynatree_min_css));
BundleTable.Add(new Bundle("~/Style/Fancytree", Links.ClientSource.Style.Fancytree.ui_fancytree_min_css));
BundleTable.Add(new Bundle("~/Style/Shadowbox", Links.ClientSource.Style.Shadowbox_min_css));
BundleTable.Add(new Bundle("~/Style/Timeline", Links.ClientSource.Style.Timeline_min_css));