public ActionResult AdminPagesEdit(int id) { BackEndAdminPagesEdit backEndAdminPagesEdit = new BackEndAdminPagesEdit(); AdminPages adminPages = new AdminPages(); AdminPage adminPage = adminPages.GetPageByPageId(id); if (adminPage.IsNotNull()) { backEndAdminPagesEdit.PageId = adminPage.PageId; backEndAdminPagesEdit.PageParentId = adminPage.PageParentId; backEndAdminPagesEdit.PageName = adminPage.PageName; backEndAdminPagesEdit.Target = adminPage.Target; backEndAdminPagesEdit.Url = adminPage.Url; backEndAdminPagesEdit.ShowInMenu = adminPage.ShowInMenu; backEndAdminPagesEdit.IsActive = adminPage.IsActive; backEndAdminPagesEdit.CssClass = adminPage.CssClass; backEndAdminPagesEdit.GroupsPermissions = adminPage.GroupsPermissions; } else { ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.ItemDoesNotExist); ViewData.IsFormVisible(false); } return(View(backEndAdminPagesEdit)); }
public ActionResult IsPageBrowseAuthorized(string id) { AdminPages backEndPages = new AdminPages(); AdminPage backEndPage = backEndPages.GetPageByAction(id); return(Content(backEndPages.IsPermissionGranted(backEndPage.PageId, PermissionCode.Browse).ToString(), "text/plain")); }
public ActionResult AdminPagesMoveDown(int postId) { AdminPages adminPages = new AdminPages(); switch (adminPages.MoveDown(postId)) { case 0: BackEndSessions.CurrentMenu = adminPages.GetMenuByGroupId(BackEndSessions.CurrentUser.GroupId); ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.PageSuccessfullyMoved); break; case 2: ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.ItemDoesNotExist); break; case 3: ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.PageCannotBeMoved); break; default: ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError); break; } return(RedirectToAction("AdminPages")); }
public async Task <ActionResult <AdminPages> > PostAdminPages(AdminPages adminPages) { _context.AdminPages.Add(adminPages); await _context.SaveChangesAsync(); return(CreatedAtAction("GetAdminPages", new { id = adminPages.PageId }, adminPages)); }
public async Task <IActionResult> PutAdminPages(int id, AdminPages adminPages) { if (id != adminPages.PageId) { return(BadRequest()); } _context.Entry(adminPages).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!AdminPagesExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { string controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.ToLower(); string action = filterContext.ActionDescriptor.ActionName; if (BackEndSessions.CurrentUser.IsNull()) { if (!(controller == "admin" && action.ToLower() == "login")) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Login", controller = "Admin", ReturnUrl = HttpUtility.UrlEncode(filterContext.HttpContext.Request.Url.AbsoluteUri) })); } } else { AdminPages backEndPages = new AdminPages(); AdminPage backEndPage = backEndPages.GetPageByAction(action); if (backEndPage.IsNotNull()) { if (backEndPages.IsPermissionGranted(backEndPage.PageId, PermissionCode.Browse)) { if (controller == "admin" && action.ToLower() == "login") { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { action = "Index", controller = "Admin" })); } } else { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary( new { action = "ErrorPage", controller = "Admin", errorPage = action, errorMessage = Resources.Strings.PageAccessNotAuthorized } ) ); } } else { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary( new { action = "ErrorPage", controller = "Admin", errorPage = action, errorMessage = Resources.Strings.Error404 } ) ); } } }
protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); AdminPages backEndPages = new AdminPages(); AdminPage backEndPage = backEndPages.GetPageByAction(RouteData.GetRequiredString("action")) ?? new AdminPage(); backEndPage.IsModal = requestContext.HttpContext.Request["IsModal"].ConvertTo <bool>(false, true); ViewBag.AdminPage = backEndPage; }
public ActionResult AdminPages(BackEndAdminPagesList backEndAdminPagesList) { AdminPages adminPages = new AdminPages(); backEndAdminPagesList.TreeTablePageList = adminPages.GetTreeTablePageList(backEndAdminPagesList.PageName); if (backEndAdminPagesList.TreeTablePageList.IsNull()) { ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.NoDataFound); } return(View(backEndAdminPagesList)); }
/// <summary> /// Returns an edit button suitable for the GridView. It will be displayed only if the Edit PermissionCode is assigned to the page. /// </summary> /// <typeparam name="TModel"></typeparam> /// <param name="htmlHelper"></param> /// <param name="hrefValue"></param> /// <returns></returns> public static MvcHtmlString BootstrapButtonEdit <TModel>(this HtmlHelper <TModel> htmlHelper, string hrefValue) { AdminPages adminPages = new AdminPages(); AdminPage adminPage = adminPages.GetPageByCurrentAction(); if (adminPages.IsPermissionGranted(adminPage.PageId, PermissionCode.Edit)) { return(new MvcHtmlString("<a href=\"" + hrefValue + "\" title=\"" + Resources.Strings.EditItem + "\" ><i class=\"fa fa-pencil\"></i></a>")); } else { return(new MvcHtmlString("")); } }
/// <summary> /// Returns a delete button suitable for the GridView. It will be displayed only if the Delete PermissionCode is assigned to the page. /// </summary> /// <typeparam name="TModel"></typeparam> /// <param name="htmlHelper"></param> /// <param name="hrefValue"></param> /// <param name="promptedValue"></param> /// <returns></returns> public static MvcHtmlString BootstrapButtonDelete <TModel>(this HtmlHelper <TModel> htmlHelper, string formActionValue, object idValue, string promptedValue) { AdminPages adminPages = new AdminPages(); AdminPage adminPage = adminPages.GetPageByCurrentAction(); if (adminPages.IsPermissionGranted(adminPage.PageId, PermissionCode.Delete)) { return(new MvcHtmlString("<button type=\"submit\" data-action=\"" + formActionValue + "\" data-id=\"" + idValue + "\" title=\"" + Resources.Strings.DeleteItem + "\" class=\"btn-a action-delete\" data-action-delete-item=\"" + promptedValue + "\"><i class=\"fa fa-trash-o\"></i></button>")); } else { return(new MvcHtmlString("")); } }
/// <summary> /// Returns an add button. It will be displayed only if the Add PermissionCode is assigned to the page. /// </summary> /// <typeparam name="TModel"></typeparam> /// <param name="htmlHelper"></param> /// <param name="hrefValue"></param> /// <returns></returns> public static MvcHtmlString BootstrapButtonAdd <TModel>(this HtmlHelper <TModel> htmlHelper, string hrefValue) { AdminPages adminPages = new AdminPages(); AdminPage adminPage = adminPages.GetPageByCurrentAction(); if (adminPages.IsPermissionGranted(adminPage.PageId, PermissionCode.Add)) { return(new MvcHtmlString("<a href=\"" + hrefValue + "\" class=\"btn btn-success\"><i class=\"fa fa-plus\"></i> " + Resources.Strings.AddNewItem + "</a>")); } else { return(new MvcHtmlString("")); } }
public ActionResult Login(BackEndLogin backEndLogin, string ReturnUrl) { AdminPage backEndPage = new AdminPage(); backEndPage.PageName = "Login"; ViewBag.AdminPage = backEndPage; if (ModelState.IsValidOrRefresh()) { Users users = new Users(); User user = users.GetUserByUserNameAndPassword(backEndLogin.Username, backEndLogin.Password); if (user.IsNotNull()) { ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.SuccessfullyLoggedIn); var tenant = users.GetTenantByUsername(backEndLogin.Username); if (tenant != null) { // 1. Tạo người dùng (User) - UserName, Password // 2. Quản lý công ty -> Tạo công ty (Tenant) - Tên, MST, ServerName, DbBName, DbUserName, DbPassword, UserName // 3. Quản lý công ty -> Cập nhật lại thông tin UserName cho công ty (Tenant) nếu Tenant chưa có UserName // // Mỗi 1 công ty (Tenant) có duy nhất 1 mã số thuế (trùng với tên đăng nhập vào hệ thống) // Mỗi 1 công ty (Tenant) có duy nhất 1 connection string = { ServerName, DbBName, DbUserName, DbPassword, DbPort (optional) } // Mỗi 1 công ty (Tenant) có nhiều Đơn Vị Cơ Sở (dvcs) // Khi Login xong thì connection string sẽ thay đổi theo mã số thuế { ServerName, DbBName, DbUserName, DbPassword, DbPort (optional) } AdoHelper2.ConnectionString = DataHelper.BuildDynamicConnectionString(ConfigurationManager.ConnectionStrings["SM17ConnectionString"].ConnectionString, tenant); user.Dvcs = tenant.Dvcs; user.Tenant = tenant; } BackEndSessions.CurrentUser = user; AdminPages backEndPages = new AdminPages(); BackEndSessions.CurrentMenu = backEndPages.GetMenuByGroupId(user.GroupId); if (ReturnUrl.IsNotEmptyOrWhiteSpace()) { return(Redirect(HttpUtility.UrlDecode(ReturnUrl))); } else { return(RedirectToAction("Dashboard")); } } else { ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UsernameOrPasswordNotValid); } } return(View(backEndLogin)); }
public ActionResult AdminPagesEdit(BackEndAdminPagesEdit backEndAdminPagesEdit, int id) { if (ModelState.IsValidOrRefresh()) { string groupsPermissions = string.Empty; foreach (GroupPermission g in backEndAdminPagesEdit.GroupsPermissions) { foreach (Permission p in g.Permissions) { if (p.PermissionValue) { groupsPermissions += g.GroupId + "," + p.PermissionCode.ToString().ToLower() + "|"; } } } AdminPages adminPages = new AdminPages(); int? result = adminPages.Edit(id, backEndAdminPagesEdit.PageParentId, backEndAdminPagesEdit.PageName, backEndAdminPagesEdit.Target, backEndAdminPagesEdit.Url, backEndAdminPagesEdit.ShowInMenu, backEndAdminPagesEdit.IsActive, backEndAdminPagesEdit.CssClass, groupsPermissions); switch (result) { case 0: BackEndSessions.CurrentMenu = adminPages.GetMenuByGroupId(BackEndSessions.CurrentUser.GroupId); ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.ItemSuccessfullyEdited); break; case 2: ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.ItemDoesNotExist); ViewData.IsFormVisible(false); break; case 3: ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.PageAlreadyExists); break; default: ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError); break; } } return(View(backEndAdminPagesEdit)); }
public ActionResult Impersonate(BackEndImpersonate backEndImpersonate) { if (ModelState.IsValidOrRefresh()) { BackEndSessions.CurrentUser = new Users().GetUserByUserName(backEndImpersonate.Username); AdminPages backEndPages = new AdminPages(); BackEndSessions.CurrentMenu = backEndPages.GetMenuByGroupId(BackEndSessions.CurrentUser.GroupId); //Remove other specific sessions List <string> sessionsToRemove = Session.Keys.Cast <string>().Where(key => key.StartsWith("Data_") || key.StartsWith("Querystring_")).ToList(); foreach (string key in sessionsToRemove) { Session.Remove(key); } } return(PartialView(backEndImpersonate)); }
public ActionResult Login(BackEndLogin backEndLogin, string ReturnUrl) { AdminPage backEndPage = new AdminPage(); backEndPage.PageName = "Login"; ViewBag.AdminPage = backEndPage; if (ModelState.IsValidOrRefresh()) { Users users = new Users(); User user = users.GetUserByUserNameAndPassword(backEndLogin.Username, backEndLogin.Password); if (user.IsNotNull()) { ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.SuccessfullyLoggedIn); BackEndSessions.CurrentUser = user; AdminPages backEndPages = new AdminPages(); BackEndSessions.CurrentMenu = backEndPages.GetMenuByGroupId(user.GroupId); if (ReturnUrl.IsNotEmptyOrWhiteSpace()) { return(Redirect(HttpUtility.UrlDecode(ReturnUrl))); } else { return(RedirectToAction("Index")); } } else { ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UsernameOrPasswordNotValid); } } return(View(backEndLogin)); }
public HelperResult GetExtendedHtml( string tableStyle = "table table-striped table-bordered table-hover footable toggle-square", string headerStyle = "webgrid-header", string footerStyle = "webgrid-footer", string rowStyle = null, string alternatingRowStyle = null, string selectedRowStyle = null, string caption = null, bool displayHeader = true, bool fillEmptyRows = false, string emptyRowCellValue = null, IEnumerable <WebGridColumnHelper> columns = null, IEnumerable <string> exclusions = null, WebGridPagerModes mode = WebGridPagerModes.Numeric | WebGridPagerModes.NextPrevious, string firstText = null, string previousText = null, string nextText = null, string lastText = null, int numericLinksCount = 5, Object htmlAttributes = null, bool displayTotalItems = true, string totalItemsText = "Total items") { HtmlString result; AdminPages adminPages = new AdminPages(); AdminPage adminPage = adminPages.GetPageByCurrentAction(); if (adminPages.IsPermissionGranted(adminPage.PageId, PermissionCode.Read)) { WebGrid webGrid = this; IHtmlString webGridHtml = webGrid.GetHtml(tableStyle, headerStyle, footerStyle, rowStyle, alternatingRowStyle, selectedRowStyle, caption, displayHeader, fillEmptyRows, emptyRowCellValue, columns, exclusions, mode, firstText, previousText, nextText, lastText, numericLinksCount, htmlAttributes); string webGridHtmlString = webGridHtml.ToString(); HtmlDocument htmlDocument = new HtmlDocument(); //TH Attributes htmlDocument.LoadHtml(webGridHtmlString); HtmlNodeCollection htmlNodeCollection = htmlDocument.DocumentNode.SelectSingleNode("//thead/tr").SelectNodes("th"); int i = 0; foreach (WebGridColumnHelper c in columns) { if (c.ThAttributes.IsNotNull()) { HtmlNode htmlNodeTh = HtmlNode.CreateNode(htmlNodeCollection[i].OuterHtml.Insert(3, " " + c.ThAttributes + " ")); htmlNodeCollection[i].ParentNode.ReplaceChild(htmlNodeTh, htmlNodeCollection[i]); } if (c.DataHide.IsNotNull()) { HtmlNode htmlNodeTh = HtmlNode.CreateNode(htmlNodeCollection[i].OuterHtml.Insert(3, " data-hide=\"" + c.DataHide.ToString().ToLower().Split('_').ToCSV(',') + "\" ")); htmlNodeCollection[i].ParentNode.ReplaceChild(htmlNodeTh, htmlNodeCollection[i]); } i++; } webGridHtmlString = htmlDocument.DocumentNode.OuterHtml; //Sort icon if (webGrid.SortColumn.IsNotEmptyOrWhiteSpace()) { htmlDocument.LoadHtml(webGridHtmlString); HtmlNode htmlNodeAnchor = htmlDocument.DocumentNode.SelectSingleNode("//a[contains(@href,'sort=" + webGrid.SortColumn + "')]"); if (htmlNodeAnchor != null) { string imgSortDirection; if (webGrid.SortDirection == SortDirection.Ascending) { imgSortDirection = "imgSortDirectionASC"; } else { imgSortDirection = "imgSortDirectionDESC"; } HtmlNode htmlNodeIcon = HtmlNode.CreateNode("<div class=\"" + imgSortDirection + "\"></div>"); htmlNodeAnchor.ParentNode.AppendChild(htmlNodeIcon); // Fix a bug http://stackoverflow.com/questions/759355/image-tag-not-closing-with-htmlagilitypack if (HtmlNode.ElementsFlags.ContainsKey("img")) { HtmlNode.ElementsFlags["img"] = HtmlElementFlag.Closed; } else { HtmlNode.ElementsFlags.Add("img", HtmlElementFlag.Closed); } webGridHtmlString = htmlDocument.DocumentNode.OuterHtml; } } //Total Row Count htmlDocument.LoadHtml(webGridHtmlString); HtmlNode htmlNodeTFoot = htmlDocument.DocumentNode.SelectSingleNode("//tfoot/tr/td"); if (htmlNodeTFoot != null) { string pager = webGrid.Pager(numericLinksCount: 10, mode: WebGridPagerModes.All).ToString(); if (displayTotalItems) { pager = "<span class=\"pager-total-items-text\">" + totalItemsText + ":</span> <span class=\"pager-total-items-value\">" + webGrid.TotalRowCount.ToString() + "</span><span class=\"pager-pagination\">" + pager + "</span>"; } htmlNodeTFoot.InnerHtml = pager; // Fix a bug http://stackoverflow.com/questions/759355/image-tag-not-closing-with-htmlagilitypack if (HtmlNode.ElementsFlags.ContainsKey("img")) { HtmlNode.ElementsFlags["img"] = HtmlElementFlag.Closed; } else { HtmlNode.ElementsFlags.Add("img", HtmlElementFlag.Closed); } webGridHtmlString = htmlDocument.DocumentNode.OuterHtml; } result = new HtmlString(webGridHtmlString); } else { result = new HtmlString("<span class=\"label label-danger\">" + Resources.Strings.InsufficientPermissions + "</span>"); } return(new HelperResult(writer => { writer.Write(result); })); }