예제 #1
0
        /// <summary>
        /// 根据编辑的菜单项更新角色的访问
        /// </summary>
        /// <param name="obj"></param>
        private void UpdateRole(TB_Permission obj)
        {
            // 更新默认角色可以访问的
            if (obj.IsDefault == true)
            {
                var dftPermission = PermissionInstance.GetDefaultMenus();
                // 查找非管理角色
                var roles = RoleInstance.FindList(f => f.IsAdministrator == false && f.Delete == false);
                foreach (var role in roles)
                {
                    var pers = role.Permission.Split(new char[] { ',' });
                    if (!pers.Contains(obj.id.ToString()))
                    {
                        RoleInstance.Update(f => f.id == role.id, act => act.Permission = dftPermission);
                    }
                }
            }
            // 查找更新管理员角色的访问权限
            RoleInstance.Update(f => f.IsAdministrator == true && f.Delete == false,
                                act => act.Permission = PermissionInstance.GetAdministratorsMenus());

            // 重置当前登陆者的session
            Account = AccountInstance.Find(f => f.id == Account.id);
            Session[Utility.SessionName] = Account;
        }
예제 #2
0
        private void NewRole()
        {
            var role = new TB_Role();

            role.AddTime         = DateTime.Now;
            role.Description     = txtDescription.Value.Trim();
            role.IsAdministrator = cbIsAdmin.Checked;
            role.IsDefault       = cbIsDefault.Checked;
            role.Name            = txtName.Value.Trim();
            role.Delete          = false;
            role.Permission      = PermissionInstance.GetDefaultMenus();
            RoleInstance.Add(role);

            // 记录历史
            var his = new TB_AccountHistory();

            his.Account  = Account.id;
            his.ActionId = ActionInstance.Find(f => f.Name.Equals("AddRole")).id;
            his.Ip       = Utility.GetClientIP(this.Context);
            his.ObjectA  = "[id=" + role.id + "] " + role.Name;
            SaveHistory(his);

            ShowNotification("./role_list.aspx", "Success: You added a new role.", true);
        }