webdav portal Dependency resolver added
This commit is contained in:
parent
6e6b2abd8a
commit
2244ce5add
16 changed files with 210 additions and 35 deletions
|
@ -3,6 +3,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
using System.Web.Mvc;
|
||||||
using System.Web.Routing;
|
using System.Web.Routing;
|
||||||
using WebsitePanel.WebDavPortal.Config;
|
using WebsitePanel.WebDavPortal.Config;
|
||||||
using WebsitePanel.WebDavPortal.DependencyInjection;
|
using WebsitePanel.WebDavPortal.DependencyInjection;
|
||||||
|
@ -16,6 +17,8 @@ namespace WebsitePanel.WebDavPortal.Constraints
|
||||||
|
|
||||||
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
|
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
|
||||||
{
|
{
|
||||||
|
var webdavManager = DependencyResolver.Current.GetService<IWebDavManager>();
|
||||||
|
|
||||||
object value;
|
object value;
|
||||||
if (!values.TryGetValue(parameterName, out value))
|
if (!values.TryGetValue(parameterName, out value))
|
||||||
return false;
|
return false;
|
||||||
|
@ -30,9 +33,7 @@ namespace WebsitePanel.WebDavPortal.Constraints
|
||||||
if (httpContext.Session == null)
|
if (httpContext.Session == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
IKernel kernel = new StandardKernel(new WebDavExplorerAppModule());
|
if (webdavManager != null && str == webdavManager.OrganizationName)
|
||||||
var webDavManager = kernel.Get<IWebDavManager>();
|
|
||||||
if (webDavManager != null && str == webDavManager.OrganizationName)
|
|
||||||
{
|
{
|
||||||
actualOrgName = str;
|
actualOrgName = str;
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -28,13 +28,21 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
{
|
{
|
||||||
public class AccountController : Controller
|
public class AccountController : Controller
|
||||||
{
|
{
|
||||||
private readonly IKernel _kernel = new StandardKernel(new NinjectSettings {AllowNullInjection = true}, new WebDavExplorerAppModule());
|
private readonly AccountModel _accountModel;
|
||||||
|
private readonly IWebDavManager _webdavManager;
|
||||||
|
private readonly ICryptography _cryptography;
|
||||||
|
|
||||||
|
public AccountController(AccountModel accountModel, IWebDavManager webdavManager, ICryptography cryptography)
|
||||||
|
{
|
||||||
|
_accountModel = accountModel;
|
||||||
|
_webdavManager = webdavManager;
|
||||||
|
_cryptography = cryptography;
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public ActionResult Login()
|
public ActionResult Login()
|
||||||
{
|
{
|
||||||
object isAuthentication = _kernel.Get<AccountModel>();
|
if (_accountModel != null)
|
||||||
if (isAuthentication != null)
|
|
||||||
return RedirectToAction("ShowContent", "FileSystem");
|
return RedirectToAction("ShowContent", "FileSystem");
|
||||||
return View();
|
return View();
|
||||||
}
|
}
|
||||||
|
@ -54,16 +62,22 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
|
|
||||||
model.Groups = ES.Services.Organizations.GetSecurityGroupsByMember(exchangeAccount.ItemId, exchangeAccount.AccountId);
|
model.Groups = ES.Services.Organizations.GetSecurityGroupsByMember(exchangeAccount.ItemId, exchangeAccount.AccountId);
|
||||||
|
|
||||||
|
WebDavManager manager = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Session[WebDavAppConfigManager.Instance.SessionKeys.AccountInfo] = model;
|
Session[WebDavAppConfigManager.Instance.SessionKeys.AccountInfo] = model;
|
||||||
Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavManager] = new WebDavManager(new NetworkCredential(model.Login, model.Password, WebDavAppConfigManager.Instance.UserDomain), exchangeAccount.ItemId);
|
|
||||||
|
manager = new WebDavManager(new NetworkCredential(model.Login, model.Password, WebDavAppConfigManager.Instance.UserDomain), exchangeAccount.ItemId);
|
||||||
|
|
||||||
|
Session[WebDavAppConfigManager.Instance.SessionKeys.WebDavManager] = manager;
|
||||||
}
|
}
|
||||||
catch (ConnectToWebDavServerException exception)
|
catch (ConnectToWebDavServerException exception)
|
||||||
{
|
{
|
||||||
return View(new AccountModel { LdapError = exception.Message });
|
return View(new AccountModel { LdapError = exception.Message });
|
||||||
}
|
}
|
||||||
return RedirectToAction("ShowContent", "FileSystem", new { org = _kernel.Get<IWebDavManager>().OrganizationName });
|
|
||||||
|
return RedirectToAction("ShowContent", "FileSystem", new { org = manager.OrganizationName });
|
||||||
}
|
}
|
||||||
return View(new AccountModel { LdapError = "The user name or password is incorrect" });
|
return View(new AccountModel { LdapError = "The user name or password is incorrect" });
|
||||||
}
|
}
|
||||||
|
@ -78,15 +92,19 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
|
|
||||||
private void AutheticationToServicesUsingWebsitePanelUser()
|
private void AutheticationToServicesUsingWebsitePanelUser()
|
||||||
{
|
{
|
||||||
var crypto = _kernel.Get<ICryptography>();
|
|
||||||
var websitePanelLogin = WebDavAppConfigManager.Instance.WebsitePanelConstantUserParameters.Login;
|
var websitePanelLogin = WebDavAppConfigManager.Instance.WebsitePanelConstantUserParameters.Login;
|
||||||
var websitePanelPassword = crypto.Decrypt(WebDavAppConfigManager.Instance.WebsitePanelConstantUserParameters.Password);
|
var websitePanelPassword = _cryptography.Decrypt(WebDavAppConfigManager.Instance.WebsitePanelConstantUserParameters.Password);
|
||||||
|
|
||||||
var authTicket = new FormsAuthenticationTicket(1, websitePanelLogin, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout),
|
var authTicket = new FormsAuthenticationTicket(1, websitePanelLogin, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout),
|
||||||
FormsAuthentication.SlidingExpiration, websitePanelPassword + Environment.NewLine);
|
FormsAuthentication.SlidingExpiration, websitePanelPassword + Environment.NewLine);
|
||||||
var encryptedTicket = FormsAuthentication.Encrypt(authTicket);
|
var encryptedTicket = FormsAuthentication.Encrypt(authTicket);
|
||||||
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
|
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
|
||||||
|
|
||||||
if (FormsAuthentication.SlidingExpiration)
|
if (FormsAuthentication.SlidingExpiration)
|
||||||
|
{
|
||||||
authCookie.Expires = authTicket.Expiration;
|
authCookie.Expires = authTicket.Expiration;
|
||||||
|
}
|
||||||
|
|
||||||
Response.Cookies.Add(authCookie);
|
Response.Cookies.Add(authCookie);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,26 +22,30 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
[LdapAuthorization]
|
[LdapAuthorization]
|
||||||
public class FileSystemController : Controller
|
public class FileSystemController : Controller
|
||||||
{
|
{
|
||||||
private readonly IKernel _kernel = new StandardKernel(new WebDavExplorerAppModule());
|
private readonly IWebDavManager _webdavManager;
|
||||||
|
|
||||||
|
public FileSystemController(IWebDavManager webdavManager)
|
||||||
|
{
|
||||||
|
_webdavManager = webdavManager;
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
public ActionResult ShowContent(string org, string pathPart = "")
|
public ActionResult ShowContent(string org, string pathPart = "")
|
||||||
{
|
{
|
||||||
var webDavManager = new StandardKernel(new WebDavExplorerAppModule()).Get<IWebDavManager>();
|
if (org != _webdavManager.OrganizationName)
|
||||||
if (org != webDavManager.OrganizationName)
|
|
||||||
return new HttpStatusCodeResult(HttpStatusCode.NoContent);
|
return new HttpStatusCodeResult(HttpStatusCode.NoContent);
|
||||||
|
|
||||||
string fileName = pathPart.Split('/').Last();
|
string fileName = pathPart.Split('/').Last();
|
||||||
if (webDavManager.IsFile(fileName))
|
if (_webdavManager.IsFile(fileName))
|
||||||
{
|
{
|
||||||
var fileBytes = webDavManager.GetFileBytes(fileName);
|
var fileBytes = _webdavManager.GetFileBytes(fileName);
|
||||||
return File(fileBytes, MediaTypeNames.Application.Octet, fileName);
|
return File(fileBytes, MediaTypeNames.Application.Octet, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
webDavManager.OpenFolder(pathPart);
|
_webdavManager.OpenFolder(pathPart);
|
||||||
IEnumerable<IHierarchyItem> children = webDavManager.GetChildren().Where(x => !WebDavAppConfigManager.Instance.ElementsRendering.ElementsToIgnore.Contains(x.DisplayName.Trim('/')));
|
IEnumerable<IHierarchyItem> children = _webdavManager.GetChildren().Where(x => !WebDavAppConfigManager.Instance.ElementsRendering.ElementsToIgnore.Contains(x.DisplayName.Trim('/')));
|
||||||
|
|
||||||
var model = new ModelForWebDav { Items = children.Take(WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount), UrlSuffix = pathPart };
|
var model = new ModelForWebDav { Items = children.Take(WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount), UrlSuffix = pathPart };
|
||||||
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount;
|
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = WebDavAppConfigManager.Instance.ElementsRendering.DefaultCount;
|
||||||
|
@ -56,8 +60,7 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
|
|
||||||
public ActionResult ShowOfficeDocument(string org, string pathPart = "")
|
public ActionResult ShowOfficeDocument(string org, string pathPart = "")
|
||||||
{
|
{
|
||||||
var webDavManager = _kernel.Get<IWebDavManager>();
|
string fileUrl = _webdavManager.RootPath.TrimEnd('/') + "/" + pathPart.TrimStart('/');
|
||||||
string fileUrl = webDavManager.RootPath.TrimEnd('/') + "/" + pathPart.TrimStart('/');
|
|
||||||
var uri = new Uri(WebDavAppConfigManager.Instance.OfficeOnline.Url).AddParameter("src", fileUrl).ToString();
|
var uri = new Uri(WebDavAppConfigManager.Instance.OfficeOnline.Url).AddParameter("src", fileUrl).ToString();
|
||||||
|
|
||||||
return View(new OfficeOnlineModel(uri, new Uri(fileUrl).Segments.Last()));
|
return View(new OfficeOnlineModel(uri, new Uri(fileUrl).Segments.Last()));
|
||||||
|
@ -69,9 +72,11 @@ namespace WebsitePanel.WebDavPortal.Controllers
|
||||||
if (Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] != null)
|
if (Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] != null)
|
||||||
{
|
{
|
||||||
var renderedElementsCount = (int)Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount];
|
var renderedElementsCount = (int)Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount];
|
||||||
var webDavManager = _kernel.Get<IWebDavManager>();
|
|
||||||
IEnumerable<IHierarchyItem> children = webDavManager.GetChildren();
|
IEnumerable<IHierarchyItem> children = _webdavManager.GetChildren();
|
||||||
|
|
||||||
var result = children.Skip(renderedElementsCount).Take(WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount);
|
var result = children.Skip(renderedElementsCount).Take(WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount);
|
||||||
|
|
||||||
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = renderedElementsCount + WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount;
|
Session[WebDavAppConfigManager.Instance.SessionKeys.ResourseRenderCount] = renderedElementsCount + WebDavAppConfigManager.Instance.ElementsRendering.AddElementsCount;
|
||||||
|
|
||||||
return PartialView("_ResourseCollectionPartial", result);
|
return PartialView("_ResourseCollectionPartial", result);
|
||||||
|
|
|
@ -4,6 +4,7 @@ using System.Web.Routing;
|
||||||
using Ninject;
|
using Ninject;
|
||||||
using WebsitePanel.WebDavPortal.DependencyInjection;
|
using WebsitePanel.WebDavPortal.DependencyInjection;
|
||||||
using WebsitePanel.WebDavPortal.Models;
|
using WebsitePanel.WebDavPortal.Models;
|
||||||
|
using WebsitePanel.WebDavPortal.UI.Routes;
|
||||||
|
|
||||||
namespace WebsitePanel.WebDavPortal.CustomAttributes
|
namespace WebsitePanel.WebDavPortal.CustomAttributes
|
||||||
{
|
{
|
||||||
|
@ -11,16 +12,19 @@ namespace WebsitePanel.WebDavPortal.CustomAttributes
|
||||||
{
|
{
|
||||||
protected override bool AuthorizeCore(HttpContextBase httpContext)
|
protected override bool AuthorizeCore(HttpContextBase httpContext)
|
||||||
{
|
{
|
||||||
IKernel kernel = new StandardKernel(new NinjectSettings { AllowNullInjection = true }, new WebDavExplorerAppModule());
|
var accountInfo = DependencyResolver.Current.GetService<AccountModel>();
|
||||||
var accountInfo = kernel.Get<AccountModel>();
|
|
||||||
if (accountInfo == null)
|
if (accountInfo == null)
|
||||||
|
{
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
|
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
|
||||||
{
|
{
|
||||||
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "Account", action = "Login" }));
|
filterContext.Result = new RedirectToRouteResult(AccountRouteNames.Login, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
using Ninject;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.DependencyInjection
|
||||||
|
{
|
||||||
|
public class NinjectDependecyResolver : IDependencyResolver
|
||||||
|
{
|
||||||
|
IKernel kernal;
|
||||||
|
|
||||||
|
public NinjectDependecyResolver()
|
||||||
|
{
|
||||||
|
kernal = new StandardKernel(new NinjectSettings { AllowNullInjection = true });
|
||||||
|
AddBindings();
|
||||||
|
}
|
||||||
|
|
||||||
|
public object GetService(Type serviceType)
|
||||||
|
{
|
||||||
|
return kernal.TryGet(serviceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<object> GetServices(Type serviceType)
|
||||||
|
{
|
||||||
|
return kernal.GetAll(serviceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddBindings()
|
||||||
|
{
|
||||||
|
PortalDependencies.Configure(kernal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
using Ninject;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.SessionState;
|
||||||
|
using WebsitePanel.WebDavPortal.Cryptography;
|
||||||
|
using WebsitePanel.WebDavPortal.DependencyInjection.Providers;
|
||||||
|
using WebsitePanel.WebDavPortal.Models;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.DependencyInjection
|
||||||
|
{
|
||||||
|
public class PortalDependencies
|
||||||
|
{
|
||||||
|
public static void Configure(IKernel kernerl)
|
||||||
|
{
|
||||||
|
kernerl.Bind<HttpSessionState>().ToProvider<HttpSessionStateProvider>();
|
||||||
|
kernerl.Bind<IWebDavManager>().ToProvider<WebDavManagerProvider>();
|
||||||
|
kernerl.Bind<AccountModel>().ToProvider<AccountInfoProvider>();
|
||||||
|
kernerl.Bind<ICryptography>().To<CryptoUtils>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System.Web.SessionState;
|
||||||
|
using Ninject;
|
||||||
|
using Ninject.Activation;
|
||||||
|
using WebsitePanel.WebDavPortal.Config;
|
||||||
|
using WebsitePanel.WebDavPortal.Models;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.DependencyInjection.Providers
|
||||||
|
{
|
||||||
|
public class AccountInfoProvider : Provider<AccountModel>
|
||||||
|
{
|
||||||
|
protected override AccountModel CreateInstance(IContext context)
|
||||||
|
{
|
||||||
|
var session = context.Kernel.Get<HttpSessionState>();
|
||||||
|
|
||||||
|
AccountModel accountInfo = null;
|
||||||
|
|
||||||
|
if (session != null)
|
||||||
|
{
|
||||||
|
accountInfo = session[WebDavAppConfigManager.Instance.SessionKeys.AccountInfo] as AccountModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
return accountInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
using Ninject.Activation;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.SessionState;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.DependencyInjection.Providers
|
||||||
|
{
|
||||||
|
public class HttpSessionStateProvider : Provider<HttpSessionState>
|
||||||
|
{
|
||||||
|
protected override HttpSessionState CreateInstance(IContext context)
|
||||||
|
{
|
||||||
|
return HttpContext.Current.Session;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
using System.Web.SessionState;
|
||||||
|
using Ninject;
|
||||||
|
using Ninject.Activation;
|
||||||
|
using WebsitePanel.WebDavPortal.Config;
|
||||||
|
using WebsitePanel.WebDavPortal.Models;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.DependencyInjection.Providers
|
||||||
|
{
|
||||||
|
public class WebDavManagerProvider : Provider<WebDavManager>
|
||||||
|
{
|
||||||
|
protected override WebDavManager CreateInstance(IContext context)
|
||||||
|
{
|
||||||
|
var session = context.Kernel.Get<HttpSessionState>();
|
||||||
|
|
||||||
|
WebDavManager webDavManager = null;
|
||||||
|
|
||||||
|
if (session != null)
|
||||||
|
{
|
||||||
|
webDavManager = session[WebDavAppConfigManager.Instance.SessionKeys.WebDavManager] as WebDavManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
return webDavManager;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ using System.Web.Mvc;
|
||||||
using System.Web.Optimization;
|
using System.Web.Optimization;
|
||||||
using System.Web.Routing;
|
using System.Web.Routing;
|
||||||
using WebsitePanel.WebDavPortal.Controllers;
|
using WebsitePanel.WebDavPortal.Controllers;
|
||||||
|
using WebsitePanel.WebDavPortal.DependencyInjection;
|
||||||
|
|
||||||
namespace WebsitePanel.WebDavPortal
|
namespace WebsitePanel.WebDavPortal
|
||||||
{
|
{
|
||||||
|
@ -15,6 +16,8 @@ namespace WebsitePanel.WebDavPortal
|
||||||
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
|
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
|
||||||
RouteConfig.RegisterRoutes(RouteTable.Routes);
|
RouteConfig.RegisterRoutes(RouteTable.Routes);
|
||||||
BundleConfig.RegisterBundles(BundleTable.Bundles);
|
BundleConfig.RegisterBundles(BundleTable.Bundles);
|
||||||
|
|
||||||
|
DependencyResolver.SetResolver(new NinjectDependecyResolver());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void Application_Error(object sender, EventArgs e)
|
protected void Application_Error(object sender, EventArgs e)
|
||||||
|
|
|
@ -11,12 +11,15 @@ using WebsitePanel.Portal;
|
||||||
using WebsitePanel.Providers.OS;
|
using WebsitePanel.Providers.OS;
|
||||||
using Ninject;
|
using Ninject;
|
||||||
using WebsitePanel.WebDavPortal.DependencyInjection;
|
using WebsitePanel.WebDavPortal.DependencyInjection;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
|
||||||
namespace WebsitePanel.WebDavPortal.Models
|
namespace WebsitePanel.WebDavPortal.Models
|
||||||
{
|
{
|
||||||
public class WebDavManager : IWebDavManager
|
public class WebDavManager : IWebDavManager
|
||||||
{
|
{
|
||||||
private readonly WebDavSession _webDavSession = new WebDavSession();
|
private readonly WebDavSession _webDavSession = new WebDavSession();
|
||||||
|
private readonly AccountModel _accountModel;
|
||||||
|
|
||||||
private IList<SystemFile> _rootFolders;
|
private IList<SystemFile> _rootFolders;
|
||||||
private int _itemId;
|
private int _itemId;
|
||||||
private IFolder _currentFolder;
|
private IFolder _currentFolder;
|
||||||
|
@ -36,11 +39,11 @@ namespace WebsitePanel.WebDavPortal.Models
|
||||||
|
|
||||||
public WebDavManager(NetworkCredential credential, int itemId)
|
public WebDavManager(NetworkCredential credential, int itemId)
|
||||||
{
|
{
|
||||||
|
_accountModel = DependencyResolver.Current.GetService<AccountModel>();
|
||||||
|
|
||||||
_webDavSession.Credentials = credential;
|
_webDavSession.Credentials = credential;
|
||||||
_itemId = itemId;
|
_itemId = itemId;
|
||||||
IKernel _kernel = new StandardKernel(new NinjectSettings { AllowNullInjection = true }, new WebDavExplorerAppModule());
|
_rootFolders = ConnectToWebDavServer(_accountModel);
|
||||||
var accountModel = _kernel.Get<AccountModel>();
|
|
||||||
_rootFolders = ConnectToWebDavServer(accountModel);
|
|
||||||
|
|
||||||
if (_rootFolders.Any())
|
if (_rootFolders.Any())
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebDavPortal.UI.Routes
|
||||||
|
{
|
||||||
|
public class FileSystemRouteNames
|
||||||
|
{
|
||||||
|
public const string FilePath = "FilePathRoute";
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
@using Ninject
|
@using Ninject
|
||||||
@model WebsitePanel.WebDavPortal.Models.ModelForWebDav
|
@model WebsitePanel.WebDavPortal.Models.ModelForWebDav
|
||||||
@{
|
@{
|
||||||
var webDavManager = (new StandardKernel(new WebsitePanel.WebDavPortal.DependencyInjection.WebDavExplorerAppModule())).Get<WebsitePanel.WebDavPortal.Models.IWebDavManager>();
|
var webDavManager = DependencyResolver.Current.GetService<WebsitePanel.WebDavPortal.Models.IWebDavManager>();
|
||||||
ViewBag.Title = (string.IsNullOrEmpty(Model.UrlSuffix) ? webDavManager.OrganizationName : Model.UrlSuffix);
|
ViewBag.Title = (string.IsNullOrEmpty(Model.UrlSuffix) ? webDavManager.OrganizationName : Model.UrlSuffix);
|
||||||
}
|
}
|
||||||
@Scripts.Render("~/bundles/jquery")
|
@Scripts.Render("~/bundles/jquery")
|
||||||
|
|
|
@ -18,8 +18,7 @@
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
isTargetBlank = false;
|
isTargetBlank = false;
|
||||||
IKernel _kernel = new StandardKernel(new WebsitePanel.WebDavPortal.DependencyInjection.WebDavExplorerAppModule());
|
var webDavManager = DependencyResolver.Current.GetService<WebsitePanel.WebDavPortal.Models.IWebDavManager>();
|
||||||
var webDavManager = _kernel.Get<WebsitePanel.WebDavPortal.Models.IWebDavManager>();
|
|
||||||
href = Model.Href.AbsolutePath;
|
href = Model.Href.AbsolutePath;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,11 @@
|
||||||
@using WebsitePanel.WebDavPortal.DependencyInjection
|
@using WebsitePanel.WebDavPortal.DependencyInjection
|
||||||
@using WebsitePanel.WebDavPortal.Models
|
@using WebsitePanel.WebDavPortal.Models
|
||||||
@using WebsitePanel.WebDavPortal.UI.Routes;
|
@using WebsitePanel.WebDavPortal.UI.Routes;
|
||||||
|
|
||||||
|
@{
|
||||||
|
var account = DependencyResolver.Current.GetService<AccountModel>();
|
||||||
|
}
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
@ -25,8 +30,6 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="navbar-collapse collapse">
|
<div class="navbar-collapse collapse">
|
||||||
@{
|
@{
|
||||||
IKernel kernel = new StandardKernel(new NinjectSettings { AllowNullInjection = true }, new WebDavExplorerAppModule());
|
|
||||||
var account = kernel.Get<AccountModel>();
|
|
||||||
if (account != null)
|
if (account != null)
|
||||||
{
|
{
|
||||||
<a id="logout" class="nav navbar-text navbar-right" href="@Url.RouteUrl(AccountRouteNames.Logout)" title="Log out"><i class="glyphicon glyphicon-log-out"></i></a>
|
<a id="logout" class="nav navbar-text navbar-right" href="@Url.RouteUrl(AccountRouteNames.Logout)" title="Log out"><i class="glyphicon glyphicon-log-out"></i></a>
|
||||||
|
|
|
@ -158,9 +158,11 @@
|
||||||
<Compile Include="Cryptography\CryptoUtils.cs" />
|
<Compile Include="Cryptography\CryptoUtils.cs" />
|
||||||
<Compile Include="Cryptography\ICryptography.cs" />
|
<Compile Include="Cryptography\ICryptography.cs" />
|
||||||
<Compile Include="CustomAttributes\LdapAuthorizationAttribute.cs" />
|
<Compile Include="CustomAttributes\LdapAuthorizationAttribute.cs" />
|
||||||
<Compile Include="DependencyInjection\AccountInfoProvider.cs" />
|
<Compile Include="DependencyInjection\Providers\AccountInfoProvider.cs" />
|
||||||
<Compile Include="DependencyInjection\WebDavExplorerAppModule.cs" />
|
<Compile Include="DependencyInjection\NinjectDependecyResolver.cs" />
|
||||||
<Compile Include="DependencyInjection\WebDavManagerProvider.cs" />
|
<Compile Include="DependencyInjection\PortalDependencies.cs" />
|
||||||
|
<Compile Include="DependencyInjection\Providers\HttpSessionStateProvider.cs" />
|
||||||
|
<Compile Include="DependencyInjection\Providers\WebDavManagerProvider.cs" />
|
||||||
<Compile Include="Exceptions\ConnectToWebDavServerException.cs" />
|
<Compile Include="Exceptions\ConnectToWebDavServerException.cs" />
|
||||||
<Compile Include="Exceptions\ResourceNotFoundException.cs" />
|
<Compile Include="Exceptions\ResourceNotFoundException.cs" />
|
||||||
<Compile Include="Extensions\DictionaryExtensions.cs" />
|
<Compile Include="Extensions\DictionaryExtensions.cs" />
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue