Пример #1
0
        /// <summary>
        /// 查找用户所拥有的所有权限
        /// </summary>
        /// <param name="roleIdList"></param>
        /// <returns></returns>
        public List <Priv> QueryPriv(List <String> roleIdList)
        {
            List <Priv> privList = new List <Priv>();

            IDictionary <Priv, IList <Operation> > privDictionary = null;

            foreach (String roleId in roleIdList)
            {
                Role newRole = new Role();
                newRole.ID     = roleId;
                privDictionary = new PrivilegeService().GetPermission(newRole);
                //如果权限列表中没有值,直接添加。
                if (privList.Count == 0)
                {
                    foreach (Priv newpriv in privDictionary.Keys)
                    {
                        privList.Add(newpriv);
                    }
                }
                else//判断privList中是否有要添加的值,没有加有不加。
                {
                    foreach (Priv newpriv in privDictionary.Keys)
                    {
                        bool judge = true;
                        foreach (Priv judgePriv in privList)
                        {
                            if (newpriv.Name == judgePriv.Name && newpriv.Type == judgePriv.Type)
                            {
                                judge = false;
                            }
                        }

                        if (judge)
                        {
                            privList.Add(newpriv);
                        }
                    }
                }
            }
            return(privList);
        }
Пример #2
0
        private void SelectOperationForOne()
        {
            GetResource();
            TreeNode _node = tvRole.SelectedNode;

            if (_node == null || _node.Tag == null)
            {
                return;
            }

            IDictionary <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _permissions = null;

            try
            {
                PrivilegeService _proxy = Common.Util.CreateProxy();

                using (_proxy as IDisposable)
                {
                    _permissions = _proxy.GetPermission(nTabControl1.SelectedTab.Name, (_node.Tag as Role));
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }

            InitCheckBox(_resTreeListMap[nTabControl1.SelectedTab.Name].Items);

            if (_permissions == null || _permissions.Count == 0)
            {
                return;
            }

            foreach (Priv res in _permissions.Keys)
            {
                SetCheckBox(_resTreeListMap[nTabControl1.SelectedTab.Name].Items, res);
            }
        }
Пример #3
0
        void frmAddRole_Load(object sender, EventArgs e)
        {
            // _unitCollection = GetSubUnit();

            //修改角色
            if (_origin != null)
            {
                this.txtRoleName.Text = _origin.Name;//角色名称
                //this.txtUnitName.Text = getUnitByID(_origin.AppId, _origin.UnitId).Name;
                //this.txtUnitName.Tag = _origin.AppId + "||" + _origin.UnitId;
                this.txtMemo.Text = _origin.Description;

                //获得角色包含的用户
                try
                {
                    PrivilegeService _proxy = Common.Util.CreateProxy();
                    using (_proxy as IDisposable)
                    {
                        //用于表更改,修改了SQL语句Security.Org.User.GetByRoleID
                        _userCollection = _proxy.QueryUser(_origin.ID);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "提示");
                    return;
                }

                AddUserOfRole();
            }
            else//新增角色
            {
                ////组织单元默认为上级角色的所属单元
                //this.txtUnitName.Text = getUnitByID(_parent.AppId, _parent.UnitId).Name;
                //this.txtUnitName.Tag = _parent.AppId + "||" + _parent.UnitId;
            }

            this.txtParentName.Text = _parent.Name;
        }
Пример #4
0
        public PrivilegeServiceTests()
        {
            var mockRepository = new Mock <IRepository <Privilege, int> >();
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            fakePrivileges = new List <Privilege>
            {
                new Privilege {
                    Id = 1, Name = "Priv1", Coefficient = 0M
                },
                new Privilege {
                    Id = 2, Name = "Priv2", Coefficient = 0.3M
                },
                new Privilege {
                    Id = 3, Name = "Priv3", Coefficient = 1M
                }
            };

            privilegeDto = new PrivilegeDto
            {
                Id          = 4,
                Name        = "Priv4",
                Coefficient = 0.3452M
            };

            mockRepository.Setup(m => m.GetAll()).Returns(fakePrivileges.AsQueryable);
            mockRepository.Setup(m => m.Get(It.IsAny <int>()))
            .Returns <int>(id => fakePrivileges.Single(t => t.Id == id));
            mockRepository.Setup(r => r.Create(It.IsAny <Privilege>()))
            .Callback <Privilege>(t => fakePrivileges.Add(privilege = t));
            mockRepository.Setup(r => r.Update(It.IsAny <Privilege>()))
            .Callback <Privilege>(t => privilege = t);
            mockRepository.Setup(x => x.Delete(It.IsAny <int>()))
            .Callback <int>(id => fakePrivileges.Remove(fakePrivileges.Single(t => t.Id == id)));

            mockUnitOfWork.Setup(m => m.Privileges).Returns(mockRepository.Object);

            privilegeService = new PrivilegeService(mockUnitOfWork.Object);
        }
        private void LoadRole()
        {
            try
            {
                PrivilegeService _proxy = Common.Util.CreateProxy();

                using (_proxy as IDisposable)
                {
                    _roles = _proxy.QueryRole();
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }

            TreeNode _root = NewNode((Role)((Neusoft.HISFC.Models.Base.Employee)Neusoft.FrameWork.Management.Connection.Operator).CurrentGroup, 6);

            this.tvRole.Nodes.Add(_root);

            this.AddRoleNode(_root, ((Neusoft.HISFC.Models.Base.Employee)Neusoft.FrameWork.Management.Connection.Operator).CurrentGroup.ID);
            _root.Expand();
        }
Пример #6
0
        private void GetDeleteRes(List <Priv> res)
        {
            //当前Role查找数据库中的权限
            IDictionary <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _permissionsParent = null;
            List <Priv>      InitResList = new List <Priv>();
            PrivilegeService _proxy      = Common.Util.CreateProxy();

            using (_proxy as IDisposable)
            {
                _permissionsParent = _proxy.GetPermission(nTabControl1.SelectedTab.Name, (tvRole.SelectedNode.Tag as Role));

                foreach (KeyValuePair <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > pair in _permissionsParent)
                {
                    InitResList.Add(pair.Key);
                }
            }

            //查找出初始Res和选择后的Res差别,找到DelResList
            foreach (Priv initRes in InitResList)
            {
                bool judge = true;
                foreach (Priv checkItem in res)
                {
                    if (initRes.Id == checkItem.Id)
                    {
                        judge = false;
                        continue;
                    }
                }

                if (judge)
                {
                    deleteResList.Add(initRes);
                }
            }
        }
Пример #7
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(tbTypeName.Text.Trim()))
            {
                MessageBox.Show("资源名称不能为空!!");
                return;
            }

            PrivilegeService _proxy = Common.Util.CreateProxy();

            try
            {
                FrameWork.Management.PublicTrans.BeginTransaction();
                using (_proxy as IDisposable)
                {
                    if (pageUpdate == JudgeOperate)
                    {
                        _proxy.UpdateRoleResource(SetRoleResource());
                    }
                    else
                    {
                        _proxy.InsertRoleResource(SetRoleResource());
                    }
                }
                FrameWork.Management.PublicTrans.Commit();
                this.DialogResult = DialogResult.OK;
                base.Close();
            }
            catch (Exception ex)
            {
                FrameWork.Management.PublicTrans.RollBack();

                MessageBox.Show(ex.ToString());
                //new SystemErrorForm(ex).ShowDialog();
            }
        }
Пример #8
0
        private void LoadResourceType()
        {
            IList <Neusoft.Privilege.BizLogic.Model.Operation> _operations = null;
            PrivilegeService _proxy = Common.Util.CreateProxy();

            try
            {
                using (_proxy as IDisposable)
                {
                    _resTypes = _proxy.GetResourceTypes();
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }

            this.nTabControl1.TabPages.Clear();
            foreach (ResourceType _resType in _resTypes)
            {
                if (IsJudgeOperationForOne(_resType.Id))
                {
                    BuildTabPageForOne(_resType);
                }
                else
                {
                    BuildTabPage(_resType);
                }
            }

            if (this.nTabControl1.TabPages.Count > 0)
            {
                this.nTabControl1_Selected(null, null);
            }
        }
Пример #9
0
        /// <summary>
        /// 查询用户角色授权信息
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public Dictionary <String, List <HISFC.Models.Privilege.Organization> > GetAuthorityRoleOrg(User user)
        {
            Dictionary <String, HISFC.Models.Privilege.Organization>         orgIdOrgMapping    = new Dictionary <string, HISFC.Models.Privilege.Organization>();
            Dictionary <String, List <HISFC.Models.Privilege.Organization> > roleOrgsDictionary = new Dictionary <string, List <HISFC.Models.Privilege.Organization> >();
            List <String[]> roleOrg  = null;
            List <String>   roleList = null;


            //获得所有类型的组织结构
            List <String>    appIds           = new List <string>();
            PrivilegeService privilegeService = new PrivilegeService();

            appIds = privilegeService.QueryAppID() as List <string>;

            foreach (string appId in appIds)
            {
                if (privilegeService.QueryUnit(appId) == null)
                {
                    continue;
                }
                foreach (HISFC.Models.Privilege.Organization newOrg in privilegeService.QueryUnit(appId))
                {
                    if (newOrg == null || String.IsNullOrEmpty(newOrg.ID))
                    {
                        continue;
                    }
                    orgIdOrgMapping.Add(newOrg.ID, newOrg);
                }
            }


            //using (DaoManager daoMgr = new DaoManager())
            //{
            try
            {
                //daoMgr.BeginTransaction();

                roleOrg  = authorityLogic.Query(user.Id);
                roleList = authorityLogic.QueryRole(user.Id);

                foreach (String roleId in roleList)
                {
                    roleOrgsDictionary.Add(roleId, new List <HISFC.Models.Privilege.Organization>());
                    {
                        foreach (String[] roleOrgArray in roleOrg)
                        {
                            if (roleId == roleOrgArray[2])
                            {
                                if (!orgIdOrgMapping.ContainsKey(roleOrgArray[3]))
                                {
                                    continue;
                                }
                                roleOrgsDictionary[roleId].Add(orgIdOrgMapping[roleOrgArray[3]]);
                            }
                        }
                    }
                }

                //daoMgr.CommitTransaction();
            }
            catch (Exception ex)
            {
                //daoMgr.RollBackTransaction();

                throw ex;
            }

            return(roleOrgsDictionary);
            //}
        }
Пример #10
0
        private void GetResource()
        {
            _resTreeListMap[nTabControl1.SelectedTab.Name].Items.Clear();
            string           _resTypeId = this.nTabControl1.SelectedTab.Name;
            IList <Priv>     _resources = null;
            PrivilegeService _proxy     = Common.Util.CreateProxy();

            try
            {
                using (_proxy as IDisposable)
                {
                    _resources = _proxy.GetResource(_resTypeId);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }
            TreeListViewItem _root = new TreeListViewItem(nTabControl1.SelectedTab.Text + "包含的资源", 9);

            Neusoft.Privilege.BizLogic.Model.Resource _res = new Neusoft.Privilege.BizLogic.Model.Resource();
            _res.Id   = "root";
            _res.Name = nTabControl1.SelectedTab.Text;
            _res.Type = nTabControl1.SelectedTab.Name;
            _root.Tag = _res;
            _resTreeListMap[nTabControl1.SelectedTab.Name].Items.Add(_root);

            //判断单一节点情况,并且要分级授权
            IDictionary <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _permissionsParent = null;
            IList <Priv> resources = new List <Priv>();

            if (IsJudgeOperationForOne(_resTypeId))
            {
                if (tvRole.SelectedNode != null && tvRole.SelectedNode.Tag != null)
                {
                    if ((tvRole.SelectedNode.Tag as Role).Id == "roleadmin" || (tvRole.SelectedNode.Tag as Role).ParentId == "roleadmin")
                    {
                        addResource(_root, _resources);
                    }
                    else
                    {
                        try
                        {
                            using (_proxy as IDisposable)
                            {
                                _permissionsParent = _proxy.GetPermission(nTabControl1.SelectedTab.Name, (tvRole.SelectedNode.Parent.Tag as Role));
                            }

                            foreach (KeyValuePair <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > pair in _permissionsParent)
                            {
                                resources.Add(pair.Key);
                            }

                            addResource(_root, resources);
                        }
                        catch (Exception e)
                        {
                            MessageBox.Show(e.Message, "提示");
                            return;
                        }
                    }
                }
            }
            else
            {
                addResource(_root, _resources);
            }

            _root.ExpandAll();
        }
Пример #11
0
        public static int Login(string account, string password)
        {
            NeuPrincipal _principal = null;
            NeuIdentity  _identity  = null;

            if (Program.isMessageShow == true)
            {
                Program.isMessageShow = false;
                return(-1);
            }
            //认证
            PrivilegeService proxy = new PrivilegeService();

            try
            {
                _identity = proxy.Authenticate(account, password, "");
                ///
                ///查询该用户拥有的角色
                IList <Role> _roles;

                using (proxy as IDisposable)
                {
                    //表更改了,所以修改了SQL语句(张凯钧)Security.Org.GetRoleByUserID
                    _roles = proxy.QueryRole(_identity.User.Id);
                }

                if (_roles == null | _roles.Count == 0)
                {
                    Program.isMessageShow = false;
                    MessageBox.Show("该用户没有进行角色授权!");
                    Program.isMessageShow = true;
                    return(-1);
                }

                _principal = new NeuPrincipal(_identity, _roles);
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    Program.isMessageShow = false;
                    MessageBox.Show(ex.Message);
                    Program.isMessageShow = true;
                }
                else
                {
                    SystemErrorForm _error = new SystemErrorForm(ex);
                    _error.ShowDialog();
                }

                return(-1);
            }

            if (_principal.Identity.IsAuthenticated)
            {
                //加载选择角色科室界面
                Role _role = SelectLoginRole((_principal.Identity as NeuIdentity).User, _principal.Roles);

                if (_role == null)
                {
                    Application.Exit();
                    //{AE0687E4-FE13-4b00-8865-738F84B74BB2}
                    return(-1);
                }

                //通过认证以后,给当前角色赋值;
                _principal.CurrentRole = _role;


                //设置登录时间
                _principal.LoginTime = Neusoft.FrameWork.Function.NConvert.ToDateTime(new Neusoft.FrameWork.Management.DataBaseManger().GetSysDateTime());

                //设置当前操作员信息
                SetLoginUser((_principal.Identity as NeuIdentity).User, (Neusoft.FrameWork.Models.NeuObject)_principal.CurrentRole, _principal.CurrentRole.UnitId);
            }
            return(0);
        }
Пример #12
0
        void RemoveResource()
        {
            if (IsJudgeOperationForOne(nTabControl1.SelectedTab.Name))
            {
                if (tvRole.SelectedNode != null)
                {
                    if ((tvRole.SelectedNode.Tag as Role).Id != "roleadmin" && (tvRole.SelectedNode.Tag as Role).ParentId != "roleadmin")
                    {
                        MessageBox.Show("请在当前角色的根结点上删除资源!", "提示");
                        return;
                    }
                }
            }

            if (nTabControl1.SelectedTab == null)
            {
                return;
            }
            TreeListView _current = _resTreeListMap[nTabControl1.SelectedTab.Name];

            if (_current.SelectedItems.Count <= 0 || _current.SelectedItems[0].Level == 0)
            {
                return;
            }
            TreeListViewItem _item = _current.SelectedItems[0];

            //不可以删除父级节点
            if (_current.SelectedItems[0].Items.Count > 0)
            {
                MessageBox.Show("请先删除子节点!");
                return;
            }

            if (MessageBox.Show("是否要删除:'" + (_item.Tag as Priv).Name + "'资源?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
            {
                return;
            }

            try
            {
                PrivilegeService _proxy = Common.Util.CreateProxy();
                using (_proxy as IDisposable)
                {
                    try
                    {
                        NFC.Management.PublicTrans.BeginTransaction();
                        if (IsJudgeOperationForOne(nTabControl1.SelectedTab.Name))
                        {
                            int rtn = _proxy.RemoveResource(_item.Tag as Priv);
                        }
                        else
                        {
                            int rtn = _proxy.RemoveResource((_item.Tag as Priv).Id);
                        }
                        NFC.Management.PublicTrans.Commit();
                    }
                    catch (Exception e)
                    {
                        NFC.Management.PublicTrans.RollBack();
                        throw e;
                    }
                    //没找到记录
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }

            if (_item.Level == 0)
            {
                _current.Items.Remove(_item);
            }
            else
            {
                _item.Parent.Items.Remove(_item);
            }

            MessageBox.Show("删除成功!", "提示");
        }
Пример #13
0
        public IPrivilegeResult GetPrivilegesByObjRef <V>(IList <V> objRefs, params ISecurityScope[] securityScopes) where V : IObjRef
        {
            ISecurityContext context       = SecurityContextHolder.Context;
            IAuthorization   authorization = context != null ? context.Authorization : null;

            if (authorization == null)
            {
                throw new SecurityException("User must be authenticated to be able to check for privileges");
            }
            if (securityScopes.Length == 0)
            {
                throw new ArgumentException("No " + typeof(ISecurityScope).Name + " provided to check privileges against");
            }
            List <IObjRef> missingObjRefs = new List <IObjRef>();

            lock (writeLock)
            {
                IPrivilegeResult result = CreateResult(objRefs, securityScopes, missingObjRefs, authorization, null);
                if (missingObjRefs.Count == 0)
                {
                    return(result);
                }
            }
            if (PrivilegeService == null)
            {
                throw new SecurityException("No bean of type " + typeof(IPrivilegeService).FullName
                                            + " could be injected. Privilege functionality is deactivated. The current operation is not supported");
            }
            String userSID = authorization.SID;
            IList <IPrivilegeOfService> privilegeResults = PrivilegeService.GetPrivileges(missingObjRefs.ToArray(), securityScopes);

            lock (writeLock)
            {
                HashMap <PrivilegeKey, IPrivilege> privilegeResultOfNewEntities = null;
                for (int a = 0, size = privilegeResults.Count; a < size; a++)
                {
                    IPrivilegeOfService privilegeResult = privilegeResults[a];
                    IObjRef             reference       = privilegeResult.Reference;

                    PrivilegeKey privilegeKey = new PrivilegeKey(reference.RealType, reference.IdNameIndex, reference.Id, userSID);
                    bool         useCache     = true;
                    if (privilegeKey.Id == null)
                    {
                        useCache        = false;
                        privilegeKey.Id = reference;
                    }
                    privilegeKey.SecurityScope = InterningFeature.Intern(privilegeResult.SecurityScope.Name);

                    IPrivilege privilege = CreatePrivilegeFromServiceResult(reference, privilegeResult);
                    if (useCache)
                    {
                        privilegeCache.Put(privilegeKey, privilege);
                    }
                    else
                    {
                        if (privilegeResultOfNewEntities == null)
                        {
                            privilegeResultOfNewEntities = new HashMap <PrivilegeKey, IPrivilege>();
                        }
                        privilegeResultOfNewEntities.Put(privilegeKey, privilege);
                    }
                }
                return(CreateResult(objRefs, securityScopes, null, authorization, privilegeResultOfNewEntities));
            }
        }
Пример #14
0
        private void InitComboBox()
        {
            InitCmbType();
            InitCmbImage();

            if (currentRole.ParentId == "roleadmin" || currentRole.ID == "roleadmin")
            {
                PrivilegeService _proxy = Common.Util.CreateProxy();
                using (_proxy as IDisposable)
                {
                    currentResourceList = _proxy.QueryResourcesByType(pageJudge);
                }
            }
            else
            {
                currentResourceList = new List <Neusoft.HISFC.BizLogic.Privilege.Model.Resource>();
                PrivilegeService _proxy = Common.Util.CreateProxy();
                using (_proxy as IDisposable)
                {
                    IList <RoleResourceMapping> newRoleResourcelist = _proxy.QueryByTypeRoleId(pageJudge, currentRole.ParentId);
                    foreach (RoleResourceMapping newRoleResource in newRoleResourcelist)
                    {
                        if (newRoleResource.Resource != null && newRoleResource.Resource.Id != null)
                        {
                            bool Judge = true;
                            if (currentResourceList.Count == 0)
                            {
                                currentResourceList.Add(newRoleResource.Resource);
                            }
                            else
                            {
                                foreach (Neusoft.HISFC.BizLogic.Privilege.Model.Resource newRes in currentResourceList)
                                {
                                    if (newRoleResource.Resource.Id == newRes.Id)
                                    {
                                        Judge = false;
                                        break;
                                    }
                                }

                                if (Judge)
                                {
                                    currentResourceList.Add(newRoleResource.Resource);
                                }
                            }
                        }
                    }
                }
            }
            if (currentResourceList.Count != 0)
            {
                FiltrateList();
            }
            cbResource.DataSource    = currentResourceList;
            cbResource.ValueMember   = "Id";
            cbResource.SelectedIndex = -1;

            if (pageUpdate == JudgeOperate)
            {
                if (controlRoleResource.Resource.Id != null)
                {
                    cbResource.SelectedValue = controlRoleResource.Resource.Id;
                }
            }
        }
Пример #15
0
        private RoleResourceMapping SetRoleResource()
        {
            RoleResourceMapping currentRoleResource = new RoleResourceMapping();

            if (cbResource.SelectedValue != null)
            {
                currentRoleResource.Resource.Id = cbResource.SelectedValue.ToString();
            }
            else
            {
                currentRoleResource.Resource.Id = null;
            }

            if (nrbRight.Checked == true)
            {
                currentRoleResource.ValidState = "1";
            }
            else
            {
                currentRoleResource.ValidState = "0";
            }

            if (controlRoleResource == null)
            {
                currentRoleResource.ParentId = "root";

                PrivilegeService _proxy = Common.Util.CreateProxy();
                using (_proxy as IDisposable)
                {
                    currentRoleResource.OrderNumber = _proxy.QueryRoleResource(pageJudge, "root").Count;
                }
            }
            else
            {
                if (pageUpdate == JudgeOperate)
                {
                    currentRoleResource.ParentId    = controlRoleResource.ParentId;
                    currentRoleResource.OrderNumber = controlRoleResource.OrderNumber;
                }
                else
                {
                    currentRoleResource.ParentId = controlRoleResource.Id;

                    PrivilegeService _proxy = Common.Util.CreateProxy();
                    using (_proxy as IDisposable)
                    {
                        //为根节点默认当前的角色
                        if (controlRoleResource.Id == "root")
                        {
                            controlRoleResource.Role = currentRole;
                            controlRoleResource.Type = pageJudge;
                        }
                        currentRoleResource.OrderNumber = _proxy.QueryByTypeParentRole(controlRoleResource).Count;
                    }
                }
            }

            if (pageUpdate == JudgeOperate)
            {
                currentRoleResource.Role.ID = controlRoleResource.Role.ID;
                currentRoleResource.Id      = controlRoleResource.Id;
            }
            else
            {
                currentRoleResource.Role.ID = currentRole.ID;
                currentRoleResource.Id      = new FrameWork.Management.DataBaseManger().GetSequence("PRIV.SEQ_ROLE_RESOURCE");
            }
            currentRoleResource.Parameter = tbparameter.Text.Trim();
            currentRoleResource.Type      = pageJudge;
            currentRoleResource.Name      = tbTypeName.Text.Trim();
            currentRoleResource.OperCode  = Neusoft.FrameWork.Management.Connection.Operator.ID;
            currentRoleResource.OperDate  = FrameWork.Function.NConvert.ToDateTime(new FrameWork.Management.DataBaseManger().GetSysDateTime());

            if (cmbImage.SelectedIndex != -1)
            {
                currentRoleResource.Icon = cmbImage.SelectedIndex.ToString();
            }
            //if (cmbImage.Text == string.Empty)
            //{
            //    currentRoleResource.Icon = null;
            //}
            return(currentRoleResource);
        }
Пример #16
0
 public PrivilegeServiceFact(ITestOutputHelper output) : base(output)
 {
     this._service = new PrivilegeService();
 }
Пример #17
0
        void SavePermission()
        {
            TreeNode _node = tvRole.SelectedNode;

            if (_node == null || _node.Tag == null)
            {
                MessageBox.Show("请选择待授权角色!", "提示");
                return;
            }
            NeuTreeListView _list = _resTreeListMap[nTabControl1.SelectedTab.Name];

            TreeListViewItem _item          = null;
            string           _permissionExp = "";

            if (_resTreeListMap[nTabControl1.SelectedTab.Name].CheckBoxes != CheckBoxesTypes.Simple)
            {
                if (_list == null || _list.SelectedItems.Count == 0 || ((_list.SelectedItems[0].Tag as Priv).Id == "root"))
                {
                    MessageBox.Show("请选择待授权资源!", "提示");
                    return;
                }
                _item = _list.SelectedItems[0];

                _permissionExp = GetSelectedPermission();
                if (string.IsNullOrEmpty(_permissionExp))
                {
                    MessageBox.Show("请选择操作权限!", "提示");
                    return;
                }
            }

            try
            {
                PrivilegeService _proxy = Common.Util.CreateProxy();
                //全部的Res
                List <Neusoft.Privilege.BizLogic.Model.Priv> allRes = new List <Priv>();
                //选中的Res
                List <Neusoft.Privilege.BizLogic.Model.Priv> res = new List <Priv>();

                NFC.Management.PublicTrans.BeginTransaction();
                if (_resTreeListMap[nTabControl1.SelectedTab.Name].CheckBoxes == CheckBoxesTypes.Simple)
                {
                    foreach (TreeListViewItem item in _resTreeListMap[nTabControl1.SelectedTab.Name].CheckedItems)
                    {
                        if ((item.Tag as Priv).Id != "root")
                        {
                            res.Add(item.Tag as Priv);
                        }
                    }

                    foreach (TreeListViewItem item in _resTreeListMap[nTabControl1.SelectedTab.Name].Items)
                    {
                        allRes.Add(item.Tag as Priv);

                        SetAllRes(allRes, item.Items);
                    }

                    GetAllChildRole(tvRole.SelectedNode.Nodes);
                    GetDeleteRes(res);

                    //当角色为系统管理员时,不考虑级联删除
                    if ((_node.Tag as Role).Id == "roleadmin")
                    {
                        deleteResList  = new List <Priv>();
                        deleteRoleList = new List <Role>();
                    }

                    int rtn = _proxy.SavePermission((_node.Tag as Role), allRes, res, _permissionExp, deleteResList, deleteRoleList);

                    NFC.Management.PublicTrans.Commit();
                    if (rtn == 0)
                    {
                        NFC.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!");
                        return;
                    }
                }
                else
                {
                    int rtn = _proxy.SavePermission(nTabControl1.SelectedTab.Name, (_node.Tag as Role), (_item.Tag as Priv), _permissionExp);
                    NFC.Management.PublicTrans.Commit();
                    if (rtn == 0)
                    {
                        NFC.Management.PublicTrans.RollBack();
                        MessageBox.Show("保存失败!");
                        return;
                    }
                    //父级处理,太麻烦...有需求再说吧
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }

            MessageBox.Show("保存成功!", "提示");
        }
Пример #18
0
 public PrivilegeService getPrivilegeService()
 {
     if (privilegeService == null)
     {
         privilegeService = new PrivilegeServiceImpl();
     }
     return privilegeService;
 }
Пример #19
0
        private void SelectOperation()
        {
            ClearSelectedOptions();

            TreeNode _node = tvRole.SelectedNode;

            if (_node == null || _node.Tag == null)
            {
                return;
            }

            NeuTreeListView _list = _resTreeListMap[nTabControl1.SelectedTab.Name];

            if (_list == null || _list.SelectedItems.Count == 0)
            {
                return;
            }
            TreeListViewItem _item = _list.SelectedItems[0];

            if ((_item.Tag as Priv).Id == "root")
            {
                return;
            }

            IDictionary <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _permissions = null;

            try
            {
                PrivilegeService _proxy = Common.Util.CreateProxy();

                using (_proxy as IDisposable)
                {
                    _permissions = _proxy.GetPermission(nTabControl1.SelectedTab.Name, (_item.Tag as Priv).Id, (_node.Tag as Role));
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return;
            }

            if (_permissions == null || _permissions.Count == 0)
            {
                return;
            }

            foreach (KeyValuePair <Priv, IList <Neusoft.Privilege.BizLogic.Model.Operation> > _pair in _permissions)
            {
                foreach (Neusoft.Privilege.BizLogic.Model.Operation _opera in _pair.Value)
                {
                    Control _c = _resGroupBoxMap[nTabControl1.SelectedTab.Name].Controls[_opera.Id];

                    if (_c != null && _c.GetType() == typeof(NeuCheckBox))
                    {
                        (_c as NeuCheckBox).Checked = true;
                    }
                    else if (_c != null && _c.GetType() == typeof(NeuRadioButton))
                    {
                        (_c as NeuRadioButton).Checked = true;
                    }
                }
                break;
            }
        }
Пример #20
0
        private bool Check()
        {
            if (string.IsNullOrEmpty(this.txtUserName.Text.Trim()))
            {
                MessageBox.Show("请选择用户人员!", "提示");
                this.btnSelectUser.Focus();
                return(false);
            }

            if (string.IsNullOrEmpty(this.txtAccount.Text.Trim()))
            {
                MessageBox.Show("登录帐户不能为空!", "提示");
                this.txtAccount.Focus();
                return(false);
            }

            if (!FrameWork.Public.String.ValidMaxLengh(this.txtAccount.Text.Trim(), 20))
            {
                MessageBox.Show("登录帐户长度不能超过20个字符!", "提示");
                this.txtAccount.Focus();
                return(false);
            }
            //如果用户没有授权角色,提示
            if (roleOrgDictionary.Count == 0)
            {
                MessageBox.Show("没有给用户授权角色!", "提示");
                return(false);
            }

            //验证帐户是否已经存在
            try
            {
                string userId = "";

                if (currentUser != null)
                {
                    userId = currentUser.Id;
                }
                else if (origin != null)
                {
                    userId = origin.Id;
                }

                PrivilegeService _proxy = Common.Util.CreateProxy();
                using (_proxy as IDisposable)
                {
                    User _user = _proxy.GetUserByAccount(txtAccount.Text.Trim());
                    if (_user != null && _user.Id != userId)
                    {
                        MessageBox.Show("该登录帐户已经存在,请使用其他帐户!", "提示");
                        return(false);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "提示");
                return(false);
            }

            /*if (!Neusoft.Framework.Util.StringHelper.ValidMaxLengh(this.txtPassword.Text.Trim(), 20))
             * {
             *  MessageBox.Show("登录口令长度不能超过20个字符!", "提示");
             *  this.txtPassword.Focus();
             *  return false;
             * }
             *
             * if (txtPassword.Text.Trim() != txtConfirmPass.Text.Trim())
             * {
             *  MessageBox.Show("确认口令和登录口令不符,请重新输入!", "提示");
             *  txtConfirmPass.Focus();
             *  return false;
             * }*/

            if (!FrameWork.Public.String.ValidMaxLengh(this.txtMemo.Text.Trim(), 256))
            {
                MessageBox.Show("备注长度不能超过128个汉字!", "提示");
                this.txtMemo.Focus();
                return(false);
            }

            return(true);
        }
Пример #21
0
        ////private static Neusoft.Framework.Unity.UnityContainerFactoryNew factory;

        //Util()
        //{

        //}

        public static PrivilegeService CreateProxy()
        {
            PrivilegeService p = new PrivilegeService();

            return(p);
        }