/// <summary> /// Updates the permission. /// </summary> /// <param name="userPermission">The user permission.</param> /// <returns>Updates the permission</returns> public bool UpdatePermission(C_UserPermission userPermission) { try { using (var data = new Entities()) { C_UserPermission objUserPer = data.C_UserPermission.Where(p => p.page_id == userPermission.page_id && p.user == userPermission.user).FirstOrDefault(); if (objUserPer != null) { objUserPer.add = userPermission.add; objUserPer.edit = userPermission.edit; objUserPer.del = userPermission.del; objUserPer.view = userPermission.view; data.SaveChanges(); } else { data.C_UserPermission.Add(userPermission); data.SaveChanges(); } } return(true); } catch { return(false); } }
public ActionResult List_user_permission(FormCollection collection, string type, string act, string ctrl, string type_act) { UserModels userModels = new UserModels(); var permission_view = new Web.Areas.Admin.ViewModels.List_user_permission_view(); this.TryUpdateModel(permission_view); StringBuilder sb = new StringBuilder(); if (string.IsNullOrEmpty(type)) { type = collection["type"].ToString(); } if (string.IsNullOrEmpty(act)) { act = Request.QueryString["act"] != null ? Request.QueryString["act"].ToString() : "list_user_permission"; } if (string.IsNullOrEmpty(ctrl)) { ctrl = Request.QueryString["ctrl"] != null ? Request.QueryString["ctrl"].ToString() : "adminUser"; } string user_name = collection["user_name"].ToString(); int totalPage = 0; if (!string.IsNullOrEmpty(collection["totalPage"])) { totalPage = int.Parse(collection["totalPage"]); } for (int i = 1; i <= totalPage; ++i) { string index = "page_" + i; if (!string.IsNullOrEmpty(collection[index])) { C_UserPermission objUserPermission = new C_UserPermission(); int pageID = int.Parse(collection[index]); objUserPermission.page_id = pageID; objUserPermission.user = user_name; string strAdd = collection["add_" + pageID]; if (strAdd.Contains("true")) { objUserPermission.add = true; } else { objUserPermission.add = false; } string strEdit = collection["edit_" + pageID]; if (strEdit.Contains("true")) { objUserPermission.edit = true; } else { objUserPermission.edit = false; } string strDelete = collection["delete_" + pageID]; if (strDelete.Contains("true")) { objUserPermission.del = true; } else { objUserPermission.del = false; } string strView = collection["view_" + pageID]; if (strView.Contains("true")) { objUserPermission.view = true; } else { objUserPermission.view = false; } userModels.UpdatePermission(objUserPermission); } } permission_view.Message = "Cập nhật thành công."; List <PagePermission> lstPagePermission = userModels.GetListPermissionByUser(user_name); permission_view.List_permission = lstPagePermission; permission_view.TotalPage = lstPagePermission.Count; permission_view.User_name = user_name; permission_view.Type = type; sb.Append("<li><a href=\"" + Url.Action("index", "dashboard", new { act = "list_user", ctrl = "adminUser", type = type, page = "1" }) + "\"><span><span>Danh sách Admin</span></span></a></li>"); sb.Append("<li><a href=\"" + Url.Action("index", "dashboard", new { act = "change_user", ctrl = "adminUser", type = type, type_act = CommonGlobal.Edit, user_name = user_name }) + "\"><span><span>Cập nhật Admin</span></span></a></li>"); sb.Append("<li class=\"active\"><a href=\"#\"><span>Page Permission</span></a></li>"); permission_view.Html_link_tab = sb.ToString(); ////action and parent action permission_view.Parent_action = HttpContext.Request.RequestContext.RouteData.Values["action"].ToString(); permission_view.Parent_controller = HttpContext.Request.RequestContext.RouteData.Values["controller"].ToString(); return(this.PartialView("../control/list_user_permission", permission_view)); }
/// <summary> /// Checks the permission. /// </summary> /// <param name="user_name">Name of the user.</param> /// <param name="act">The act.</param> /// <param name="ctrl">The control.</param> /// <param name="type_action">The type action.</param> /// <param name="type">The type.</param> /// <returns>Checks the permission</returns> public static bool CheckPermission(string user_name, string act, string ctrl, string type_action, string type) { try { using (var data = new Entities()) { C_UserPage objUserPage = new C_UserPage(); if (string.IsNullOrEmpty(type)) { objUserPage = data.C_UserPage.Where(c => c.act == act && c.ctrl == ctrl).FirstOrDefault(); } else { objUserPage = data.C_UserPage.Where(c => c.act == act && c.ctrl == ctrl && c.Tye == type).FirstOrDefault(); } if (objUserPage != null) { C_UserPermission objUserPermission = data.C_UserPermission.Where(p => p.page_id == objUserPage.id && p.user == user_name).FirstOrDefault(); if (objUserPermission != null) { bool isOK = false; switch (type_action) { case CommonGlobal.Add: isOK = (bool)objUserPermission.add; break; case CommonGlobal.Edit: isOK = (bool)objUserPermission.edit; break; case CommonGlobal.Delete: isOK = (bool)objUserPermission.del; break; case CommonGlobal.View: isOK = (bool)objUserPermission.view; break; default: isOK = false; break; } return(isOK); } else { return(false); } } else { return(false); } } } catch (Exception) { return(false); } }