示例#1
0
        /// <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));
        }
示例#3
0
        /// <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);
            }
        }