public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); var repository = filterContext.Controller.ControllerContext.RouteData.Values["id"].ToString(); var user = filterContext.HttpContext.User.Identity.Name; if (RequiresRepositoryAdministrator) { if (!RepositoryPermissionService.IsRepositoryAdministrator(user, repository)) { filterContext.Result = new HttpUnauthorizedResult(); } } else { if (!RepositoryPermissionService.HasPermission(user, repository)) { if (!RepositoryPermissionService.AllowsAnonymous(repository)) { filterContext.Result = new HttpUnauthorizedResult(); } } } }
public ActionResult Detail(string id) { ViewBag.ID = id; if (!String.IsNullOrEmpty(id)) { var model = ConvertRepositoryModel(RepositoryRepository.GetRepository(id)); if (model != null) { model.IsCurrentUserAdministrator = RepositoryPermissionService.IsRepositoryAdministrator(User.Identity.Name, id); } return View(model); } return View(); }
public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); var repository = filterContext.Controller.ControllerContext.RouteData.Values["id"].ToString(); var user = filterContext.HttpContext.User.Identity.Name; if (RequiresRepositoryAdministrator) { if (RepositoryPermissionService.IsRepositoryAdministrator(user, repository)) { return; } } else { if (RepositoryPermissionService.HasPermission(user, repository)) { return; } if (RepositoryPermissionService.AllowsAnonymous(repository)) { return; } } if (filterContext.HttpContext.User == null || !(filterContext.HttpContext.User.Identity is FormsIdentity) || !filterContext.HttpContext.User.Identity.IsAuthenticated) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "controller", "Home" }, { "action", "LogOn" }, { "returnUrl", filterContext.HttpContext.Request.Url.PathAndQuery } }); } else { filterContext.Result = new RedirectResult("~/Home/Unauthorized"); } }
public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); if (!(filterContext.Result is HttpUnauthorizedResult)) { string repository = filterContext.Controller.ControllerContext.RouteData.Values["id"].ToString(); string user = filterContext.HttpContext.User.Id(); if (filterContext.HttpContext.User.IsInRole(Definitions.Roles.Administrator)) { return; } if (RequiresRepositoryAdministrator) { if (RepositoryPermissionService.IsRepositoryAdministrator(user, repository)) { return; } } else { if (RepositoryPermissionService.HasPermission(user, repository)) { return; } if (RepositoryPermissionService.AllowsAnonymous(repository)) { return; } } filterContext.Result = new RedirectResult("~/Home/Unauthorized"); } }
public ActionResult Detail(Guid id) { ViewBag.ID = id; var model = ConvertRepositoryModel(RepositoryRepository.GetRepository(id)); if (model != null) { model.IsCurrentUserAdministrator = User.IsInRole(Definitions.Roles.Administrator) || RepositoryPermissionService.IsRepositoryAdministrator(User.Id(), model.Id); SetGitUrls(model); } using (var browser = new RepositoryBrowser(Path.Combine(UserConfiguration.Current.Repositories, model.Name))) { string defaultReferenceName; browser.BrowseTree(null, null, out defaultReferenceName); RouteData.Values.Add("encodedName", defaultReferenceName); } return(View(model)); }