Example #1
0
        /// <summary>
        /// 加载单条流程文件夹权限
        /// </summary>
        /// <returns></returns>
        public JsonResult LoadWorkflowFolderAcl(string WorkflowFolderCode, string AclID)
        {
            return(ExecuteFunctionRun(() => {
                WorkflowFolderAclViewModel model = new WorkflowFolderAclViewModel();
                model.WorkflowFolderCode = WorkflowFolderCode;

                if (!string.IsNullOrEmpty(AclID))
                {
                    Acl.FunctionAcl FunctionAcl = this.Engine.FunctionAclManager.GetAcl(AclID);

                    model.ObjectID = FunctionAcl.AclID;
                    model.UserID = FunctionAcl.UserID;
                    OThinker.Organization.Unit unit = this.Engine.Organization.GetUnit(model.UserID);
                    if (unit != null)
                    {
                        model.UserName = unit.Name;
                    }

                    model.WorkflowFolderCode = FunctionAcl.FunctionCode;
                    model.Run = FunctionAcl.Run;
                }
                FunctionNode FunctionNode = this.Engine.FunctionAclManager.GetFunctionNodeByCode(WorkflowFolderCode);

                model.WorkflowFolderName = FunctionNode.DisplayName;
                model.FunctionRun = this.UserValidator.ValidateFunctionRun(WorkflowFolderCode);

                return Json(model, JsonRequestBehavior.AllowGet);
            }));
        }
Example #2
0
        public void DeleteOrg(OThinker.Organization.Unit unit)
        {
            if (unit is OThinker.Organization.OrganizationUnit)
            {
                List <OThinker.Organization.Unit> lstUnit = this.Engine.Organization.GetChildUnits(unit.ObjectID, OThinker.Organization.UnitType.OrganizationUnit, false, OThinker.Organization.State.Unspecified);
                foreach (OThinker.Organization.Unit u in lstUnit)
                {
                    DeleteOrg(u);
                }
            }

            this.Engine.Organization.RemoveUnit(this.UserValidator.UserID, unit);
        }
        private string GetFullName(string unitId)
        {
            string UserAlias = string.Empty;

            // 编辑模式
            OThinker.Organization.Unit u = this.Engine.Organization.GetUnit(unitId);
            if (u is OThinker.Organization.User)
            {
                UserAlias = this.Engine.Organization.GetFullName(u.ParentID) + "/" + u.Name;
            }
            else
            {
                UserAlias = this.Engine.Organization.GetFullName(unitId);
            }

            return(UserAlias);
        }
        /// <summary>
        /// 获取组织,群名称
        /// </summary>
        /// <param name="unitID"></param>
        /// <returns></returns>
        public JsonResult GetUnitInfo(string unitID)
        {
            return(ExecuteFunctionRun(() =>
            {
                var unit = new object();
                OThinker.Organization.Unit u = this.Engine.Organization.GetUnit(unitID);
                if (u != null)
                {
                    unit = new
                    {
                        UnitID = u.ObjectID,
                        UnitName = u.Name
                    };
                }

                return Json(unit, JsonRequestBehavior.AllowGet);
            }));
        }
        public JsonResult DelRole(string id)
        {
            return(ExecuteFunctionRun(() =>
            {
                ActionResult result = new ActionResult(true, "");

                string[] idArr = id.Split(';');
                if (idArr != null && idArr.Length > 0)
                {
                    foreach (string d in idArr)
                    {
                        OThinker.Organization.Unit post = this.Engine.Organization.GetUnit(d);
                        this.Engine.Organization.RemoveUnit(OThinker.Organization.User.AdministratorID, post);
                    }
                }

                return Json(result, JsonRequestBehavior.AllowGet);
            }));
        }
        /// <summary>
        /// 获取组织对应的名称
        /// </summary>
        /// <param name="UnitKeys"></param>
        /// <returns></returns>
        public JsonResult GetUnitNames(string UnitKeys)
        {
            return(ExecuteFunctionRun(() =>
            {
                try
                {
                    string[] UserKeys = (string[])JsonConvert.DeserializeObject(UnitKeys, typeof(string[]));
                    if (UserKeys != null && UserKeys.Length > 0)
                    {
                        OThinker.Organization.IOrganization _Organization = this.Engine.Organization;
                        List <object> lstUnitNames = new List <object>();

                        foreach (string Key in UserKeys)
                        {
                            OThinker.Organization.Unit Unit = _Organization.GetUnit(Key);
                            if (Unit == null)
                            {
                                Unit = _Organization.GetUnit(Key);
                                if (Unit == null)
                                {
                                    Unit = _Organization.GetUserByCode(Key);
                                }
                            }

                            if (Unit != null)
                            {
                                lstUnitNames.Add(new
                                {
                                    Key = Key,
                                    Name = Unit.Name
                                });
                            }
                        }
                        return Json(lstUnitNames, JsonRequestBehavior.AllowGet);
                    }
                }
                catch { }

                return null;
            }));
        }
        /// <summary>
        /// 创建组织机构的树节点
        /// </summary>
        /// <param name="unitID"></param>
        /// <param name="child"></param>
        /// <param name="imgName"></param>
        /// <returns></returns>
        private FormulaTreeNode BuildOrgChildNode(string unitID, OThinker.Organization.Unit child, string imgName)
        {
            //组织机构全部使用OBJECTID 作参数
            string Code = child.ObjectID;
            //if (child.UnitType == OThinker.Organization.UnitType.User) { Code = ((OThinker.Organization.User)child).Code; }

            FormulaTreeNode node = new FormulaTreeNode()
            {
                Text        = "_" + child.Name,//在资源文件解析的时候,如果以_开头,则返回_之后的字符串,否则会根据资源文件里面的字符串替换,组织结构名称会找不到
                ObjectID    = child.ObjectID,
                Value       = Code,
                IsLeaf      = child.UnitType == OThinker.Organization.UnitType.User,
                Icon        = imgName,
                ParentID    = unitID,
                FormulaType = FormulaType.Organization.ToString()
            };

            if (!node.IsLeaf)
            {
                node.LoadDataUrl = this.PortalRoot + "/Formula/LoadTreeData?unitID=" + child.ObjectID;
            }
            return(node);
        }
        public JsonResult Load(string WorkflowCode, string AclId)
        {
            return(ExecuteFunctionRun(() => {
                OThinker.H3.Acl.WorkflowAcl CurrentAcl = null;
                if (!string.IsNullOrEmpty(AclId))
                {
                    CurrentAcl = this.Engine.WorkflowAclManager.GetWorkflowAcl(AclId);
                }

                var WorflowName = this.Engine.WorkflowManager.GetClauseDisplayName(WorkflowCode);
                var UserAlias = string.Empty;
                var CreateInstance = false;

                //按钮显示 ,前台判断
                if (CurrentAcl != null)
                {
                    // 编辑模式
                    OThinker.Organization.Unit u = this.Engine.Organization.GetUnit(CurrentAcl.UserID);
                    if (u is OThinker.Organization.User)
                    {
                        UserAlias = this.Engine.Organization.GetFullName(u.ParentID) + "/" + u.Name;
                    }
                    else
                    {
                        UserAlias = this.Engine.Organization.GetFullName(CurrentAcl.UserID);
                    }


                    CreateInstance = CurrentAcl.CreateInstance;
                }

                //BizWorkflowPackageLockByID(WorkflowCode);
                var obj = new { WorkflowName = WorflowName, UserAlias = UserAlias, CreateInstance = CreateInstance };

                return Json(obj, JsonRequestBehavior.AllowGet);
            }));
        }
Example #9
0
        /// <summary>
        /// 获取流程文件夹权限数据
        /// </summary>
        /// <param name="WorkflowFolderCode"></param>
        /// <returns></returns>
        public JsonResult GetData(string WorkflowFolderCode)
        {
            return(ExecuteFunctionRun(() => {
                Acl.FunctionAcl[] acls = this.Engine.FunctionAclManager.GetFunctionAclByCode(WorkflowFolderCode);
                if (acls != null)
                {
                    for (int i = 0, j = acls.Length; i < j; i++)
                    {
                        var unitId = acls[i].UserID;
                        acls[i].UserID = this.Engine.Organization.GetFullName(acls[i].UserID);

                        OThinker.Organization.Unit unit = this.Engine.Organization.GetUnit(unitId);
                        if (unit.UnitType != OThinker.Organization.UnitType.OrganizationUnit)
                        {
                            acls[i].UserID += "/" + unit.Name;
                        }
                    }
                }

                var GridData = CreateLigerUIGridData(acls);

                return Json(GridData, JsonRequestBehavior.AllowGet);
            }));
        }