Esempio n. 1
0
 public static void ApplayPermision(JsonItemCollection items)
 {
     using (BPMConnection cn = new BPMConnection())
     {
         cn.WebOpen();
         ApplayPermision(cn, items);
     }
 }
Esempio n. 2
0
 public static string GetNewFileID()
 {
     using (BPMConnection cn = new BPMConnection())
     {
         cn.WebOpen();
         string rv = cn.GetSerialNum("yz_sys_att" + DateTime.Today.ToString("yyyyMMdd"), 4, 1, 1);
         rv = rv.Substring("yz_sys_att".Length);
         return rv;
     }
 }
Esempio n. 3
0
    public string displayname()
    {
        string name = "";
        using (BPMConnection cn = new BPMConnection())
        {
            cn.WebOpen();
            User user =BPM.Client.User.FromAccount(cn, YZAuthHelper.LoginUserAccount);
            name = user.DisplayName;
        }

        return name;
    }
Esempio n. 4
0
    public string badge()
    {
        string div = "";
        int count;
        using (BPMConnection cn = new BPMConnection())
        {
            cn.WebOpen();
            count = cn.GetMyTaskCount();
        }
        if (count > 0)
        {
            div = " <span class='badge bg-red'>" + count + "</span>";

        }
        return div;
    }
Esempio n. 5
0
        public BPMHelper(string BPMServer, string UserAccount, string PWD)
        {
            _eServer = BPMServer;
            _userAccount = UserAccount;
            _pwd = PWD;

            using (BPMConnection bpmConn = new BPMConnection())
            {
                bpmConn.Open(_eServer, _userAccount, _pwd);
                MemberCollection positions = OrgSvr.GetUserPositions(bpmConn, bpmConn.UID);

                if (positions.Count == 0)
                {
                    throw new BPMException(string.Format("用户不属于任何组织,账号:{0}", bpmConn.UID));
                }
                _userFullName = positions[0].FullName;
            }
        }
Esempio n. 6
0
        public virtual BPMObjectNameCollection GetOUExtAttrNames(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            String    @namespace = request.GetString("namespace", Namespace.BPMOU);

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                DataColumnCollection columns = OU.GetExtColumns(cn, @namespace);

                BPMObjectNameCollection attrNames = new BPMObjectNameCollection();
                foreach (DataColumn column in columns)
                {
                    attrNames.Add(column.ColumnName);
                }

                return(attrNames);
            }
        }
Esempio n. 7
0
        public void PullProcess(object obj)
        {
            BPMConnection cn = null;
            string        server;
            string        strPort;
            int           port;
            string        clientid = null;

            server  = System.Web.Configuration.WebConfigurationManager.AppSettings["BPMServerName"];
            strPort = System.Web.Configuration.WebConfigurationManager.AppSettings["BPMServerPort"];

            if (!Int32.TryParse(strPort, out port))
            {
                port = BPMConnection.DefaultPort;
            }

            while (true)
            {
                try
                {
                    if (cn == null)
                    {
                        cn = new BPMConnection();
                        cn.OpenAnonymous(server, port);
                        clientid = cn.RegisterClient();
                    }

                    PushMessageCollection messages = cn.GetClientMessages(clientid);
                    this.DispatchMessage(messages);
                    Thread.Sleep(100);
                }
                catch (Exception)
                {
                    if (cn.IsOpen)
                    {
                        cn.Close();
                    }

                    cn = null;
                    Thread.Sleep(3000);
                }
            }
        }
Esempio n. 8
0
        public virtual JObject RecedeBack(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            this.ApproveCheck(context);

            int        stepid    = request.GetInt32("StepID");
            JObject    jPost     = request.GetPostData <JObject>();
            string     comments  = (string)jPost["comments"];
            string     formdata  = (string)jPost["formdata"];
            List <int> toStepIDs = jPost["toStepIDs"].ToObject <List <int> >();

            BPMTask     task;
            BPMProcStep srcStep;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                //移动审批不保存表单数据
                if (!String.IsNullOrEmpty(formdata))
                {
                    BPMProcess.Post(cn, formdata);
                }

                srcStep = BPMProcStep.Load(cn, stepid);
                task    = BPMTask.Load(cn, srcStep.TaskID);

                BPMStepCollection newSteps = BPMProcStep.RecedeBack(cn, stepid, toStepIDs.ToArray(), comments);
                List <string>     to       = new List <string>();
                foreach (BPMProcStep step in newSteps)
                {
                    to.Add(String.Format("{0}[{1}]", step.NodeName, YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName)));
                }

                JObject rv = new JObject();
                rv[YZJsonProperty.success] = true;
                rv["sn"]      = task.SerialNum;
                rv["tosteps"] = String.Join(";", to.ToArray());

                return(rv);
            }
        }
Esempio n. 9
0
        public void PushMessage(string clientid, BPMObjectNameCollection uids, string[] channels, YZMessage message, bool broadcast)
        {
            JObject jmessage = JObject.FromObject(message);

            PushMessageCollection pushMessages = new PushMessageCollection();

            foreach (string channel in channels)
            {
                PushMessage pushmessage = new BPM.PushMessage(clientid, uids, channel, jmessage);
                pushmessage.Broadcast = broadcast;
                pushMessages.Add(pushmessage);
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                cn.Push(pushMessages);
            }
        }
Esempio n. 10
0
        public virtual BPMObjectNameCollection GetFormApplicationNames(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    folder  = request.GetString("folder", null);

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                FormApplicationCollection formApplications = cn.GetFormApplicationList(folder, BPMPermision.None);

                BPMObjectNameCollection names = new BPMObjectNameCollection();
                foreach (FormApplication formApplication in formApplications)
                {
                    names.Add(formApplication.Name);
                }

                return(names);
            }
        }
Esempio n. 11
0
        protected virtual void ExpandTree(BPMConnection cn, JArray items, string rsid)
        {
            UserResourceCollection resources = UserResource.GetChildren(cn, rsid);

            foreach (UserResource resource in resources)
            {
                JObject item = new JObject();
                items.Add(item);
                item["leaf"]     = false;
                item["text"]     = resource.ResourceName;
                item["iconCls"]  = "folder";
                item["expanded"] = false;
                item["path"]     = resource.RSID;

                JArray children = new JArray();
                item[YZJsonProperty.children] = children;
                this.ExpandTree(cn, children, resource.RSID);
            }
        }
Esempio n. 12
0
        public virtual object Inform(HttpContext context)
        {
            YZRequest request            = new YZRequest(context);
            int       taskid             = request.GetInt32("TaskID");
            JObject   jPost              = request.GetPostData <JObject>();
            string    comments           = (string)jPost["comments"];
            BPMObjectNameCollection uids = jPost["uids"].ToObject <BPMObjectNameCollection>();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                UserCollection users = BPMTask.Inform(cn, taskid, uids, comments);

                return(new {
                    UserNameList = YZStringHelper.GetUserShortNameListString(users)
                });
            }
        }
Esempio n. 13
0
        public virtual JObject Pickback(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            int       taskid   = request.GetInt32("TaskID");
            int       stepid   = request.GetInt32("StepID");
            string    comments = request.GetString("Comments", null);

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                BPMProcStep step = BPMTask.PickBack(cn, taskid, stepid, comments);

                JObject rv = new JObject();
                rv[YZJsonProperty.success] = true;
                rv["StepName"]             = step.NodeName;
                rv["UserFriendlyName"]     = YZStringHelper.GetUserFriendlyName(step.RecipientAccount, step.RecipientFullName);
                return(rv);
            }
        }
Esempio n. 14
0
        public virtual object GetTaskCount(HttpContext context)
        {
            //获得数据
            int total;
            int worklist;
            int sharetask;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                total = cn.GetMyTaskCount(out worklist, out sharetask);
            }

            return(new {
                total = total,
                worklist = worklist,
                sharetask = sharetask
            });
        }
Esempio n. 15
0
        public virtual JObject GetFolders(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                JObject rv = new JObject();

                JArray items = new JArray();
                rv[YZJsonProperty.children] = items;

                this.ExpandTree(cn, items, null);

                rv[YZJsonProperty.success] = true;
                return(rv);
            }
        }
Esempio n. 16
0
        public virtual object SaveProcessAsNewVersion(HttpContext context)
        {
            YZRequest  request = new YZRequest(context);
            string     path    = request.GetString("path");
            JObject    post    = request.GetPostData <JObject>();
            BPMProcess process = post.ToObject <BPMProcess>();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                process.Save(cn, path, null, true);
            }

            return(new
            {
                server = WebConfigurationManager.AppSettings["BPMServerName"],
                version = process.Version.ToString(2)
            });
        }
Esempio n. 17
0
        public Result UpdateUser(AuthInfo authInfo, UserInfo userInfo, string updateFieldName)
        {
            try
            {
                YZService.AuthSystem(authInfo);
                YZAuthHelper.SetAuthCookie(authInfo.RealLoginAccount);

                //传入值检查
                if (String.Compare(updateFieldName, "Password") == 0)
                {
                    throw new Exception(String.Format("属性不支持以更新方式修改:{0}", updateFieldName));
                }

                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();

                    //获得用户原始信息
                    User user = new User();
                    user.Open(cn, userInfo.Account);

                    //粘合新属性
                    PropertyInfo tagProp = typeof(User).GetProperty(updateFieldName);
                    FieldInfo    srcProp = typeof(UserInfo).GetField(updateFieldName);
                    if (tagProp == null || srcProp == null)
                    {
                        throw new Exception(String.Format("无效的属性:{0}", updateFieldName));
                    }

                    tagProp.SetValue(user, srcProp.GetValue(userInfo), null);

                    //执行更新
                    BPM.Client.User.Update(cn, user.Account, user);
                }

                return(Result.SuccessResult);
            }
            catch (Exception e)
            {
                return(Result.FromException(e));
            }
        }
Esempio n. 18
0
        public virtual JObject GetTaskForecastSteps(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       taskid  = request.GetInt32("TaskID");
            string    xmlData = request.GetString("xmlData", null);

            if (!String.IsNullOrEmpty(xmlData))
            {
                xmlData = Encoding.UTF8.GetString(Convert.FromBase64String(xmlData));
            }

            JObject rv = new JObject();

            //获得数据
            BPMStepCollection steps = null;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                steps = BPMTask.GetForecastSteps(cn, taskid, xmlData);

                //将数据转化为Json集合
                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMProcStep step in steps)
                {
                    if (!step.IsHumanStep)
                    {
                        continue;
                    }

                    children.Add(Serialize(cn, step));
                }

                rv[YZJsonProperty.total] = children.Count;
            }

            //输出数据
            rv[YZJsonProperty.success] = true;
            return(rv);
        }
Esempio n. 19
0
        public virtual object SearchMember(HttpContext context)
        {
            YZRequest request             = new YZRequest(context);
            string    keyword             = request.GetString("keyword", null);
            bool      includeDisabledUser = request.GetBool("includeDisabledUser", false);

            //将数据转化为Json集合
            JObject rv = new JObject();

            JArray children = new JArray();

            rv[YZJsonProperty.children] = children;

            if (!String.IsNullOrEmpty(keyword))
            {
                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();
                    MemberCollection members = OrgSvr.SearchMember(cn, keyword, includeDisabledUser);
                    UserCollection   users   = new UserCollection();
                    foreach (Member member in members)
                    {
                        User user = users.TryGetItem(member.UserAccount);
                        if (user == null)
                        {
                            user = User.FromAccount(cn, member.UserAccount);
                            users.Add(user);
                        }

                        JObject jItem      = this.JObjectFromMember(member, user);
                        string  oufullName = member.GetParentOU(cn).GetFriendlyFullName(cn);
                        jItem["parentouFriendlyName"] = oufullName;
                        jItem["memberFriendlyName"]   = oufullName + "/" + user.Account;
                        jItem["search"] = true;
                        children.Add(jItem);
                    }
                }
            }

            //输出数据
            return(rv);
        }
Esempio n. 20
0
        public virtual JObject PutbackShareTaskExt(HttpContext context)
        {
            JArray processedItems = new JArray();

            try
            {
                YZRequest request = new YZRequest(context);
                JObject   jPost   = request.GetPostData <JObject>();
                JArray    items   = (JArray)jPost["items"];

                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();

                    foreach (JObject item in items)
                    {
                        int id     = (int)item["ID"];
                        int stepid = (int)item["StepID"];
                        BPMProcStep.PutbackShareStep(cn, stepid);

                        JObject processedItem = new JObject();
                        processedItem["ID"] = id;
                        processedItems.Add(processedItem);
                    }

                    JObject rv = new JObject();
                    rv[YZJsonProperty.success]        = true;
                    rv[YZJsonProperty.processedItems] = processedItems;

                    return(rv);
                }
            }
            catch (Exception exp)
            {
                JObject rv = new JObject();
                rv[YZJsonProperty.success]        = false;
                rv[YZJsonProperty.errorMessage]   = exp.Message;
                rv[YZJsonProperty.processedItems] = processedItems;

                return(rv);
            }
        }
Esempio n. 21
0
        public virtual void SaveFormService(HttpContext context)
        {
            YZRequest       request = new YZRequest(context);
            JObject         post    = request.GetPostData <JObject>();
            FormApplication app     = post["data"].ToObject <FormApplication>();
            ACL             acl     = post["acl"].ToObject <ACL>();
            string          mode    = request.GetString("mode");
            string          path;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                if (mode == "edit")
                {
                    path = request.GetString("path");
                    string name = request.GetString("name");
                    if (name != app.Name)
                    {
                        path = cn.RenameObject(StoreZoneType.FormService, path, app.Name);
                    }

                    app.Save(cn, path, true);
                }
                else
                {
                    string folder = request.GetString("folder", "");
                    if (String.IsNullOrEmpty(folder))
                    {
                        path = app.Name;
                    }
                    else
                    {
                        path = folder + "/" + app.Name;
                    }

                    app.Save(cn, path, false);
                }

                SecurityManager.SaveACL(cn, SecurityResType.FormApplication, path, null, acl);
            }
        }
Esempio n. 22
0
        private JObject GetApprovalLog(BPMConnection cn, int TaskID)
        {
            JObject result = new JObject();

            BPMTask task = BPMTask.Load(cn, TaskID);

            result["success"] = true;
            result["TaskID"]  = TaskID;
            result["SN"]      = task.SerialNum;
            result["State"]   = task.TaskState.ToString();

            JArray StepItems = new JArray();

            result["StepItems"] = StepItems;

            BPMStepCollection steps = BPMTask.GetAllSteps(cn, TaskID);

            foreach (BPMProcStep step in steps)
            {
                if (step.IsHumanStep)
                {
                    JObject item = new JObject();
                    StepItems.Add(item);
                    item["StepID"]           = step.StepID;
                    item["NodeName"]         = step.NodeName;
                    item["ReceiveAt"]        = YZStringHelper.DateToStringL(step.ReceiveAt);
                    item["FinishAt"]         = step.FinishAt == DateTime.MinValue ? "" : YZStringHelper.DateToStringL(step.FinishAt);
                    item["OwnerAccount"]     = step.OwnerAccount;
                    item["OwnerName"]        = step.OwnerFullName;
                    item["RecipientAccount"] = step.RecipientAccount == null ? "" : step.RecipientAccount;
                    item["RecipientName"]    = step.RecipientFullName == null ? "" : step.RecipientFullName;
                    item["HandlerAccount"]   = step.HandlerAccount == null ? "" : step.HandlerAccount;
                    item["HandlerName"]      = step.HandlerFullName == null ? "" : step.HandlerFullName;
                    item["AgentAccount"]     = step.AgentAccount == null ? "" : step.AgentAccount;
                    item["AgentName"]        = step.AgentFullName == null ? "" : step.AgentFullName;
                    item["SelAction"]        = step.SelAction == null ? "" : step.SelAction;
                    item["Comments"]         = step.Comments == null ? "" : step.Comments;
                }
            }

            return(result);
        }
Esempio n. 23
0
        private JObject MyTask(BPMConnection cn, string Path, int Start, int Limit, string ProcessName, string Keyword)
        {
            int     rowcount;
            JObject result              = new JObject();
            string  TaskFilter          = getTaskFilter(ProcessName, Keyword, true);
            BPMTaskListCollection tasks = cn.GetMyTaskList(Path, TaskFilter, "StepID DESC", Start, Limit, out rowcount);

            //将数据转化为Json集合
            result["success"]   = true;
            result["totalRows"] = rowcount;

            JArray children = new JArray();

            result["children"] = children;
            foreach (BPMTaskListItem task in tasks)
            {
                JObject item = new JObject();
                children.Add(item);

                item["StepID"]       = task.StepID;
                item["TaskID"]       = task.TaskID;
                item["SerialNum"]    = task.SerialNum;
                item["ProcessName"]  = task.ProcessName;
                item["OwnerAccount"] = task.OwnerAccount;
                item["OwnerName"]    = task.OwnerFullName;
                item["AgentAccount"] = task.AgentAccount == null ? "" : task.AgentAccount;
                item["AgentName"]    = task.AgentFullName == null ? "" : task.AgentFullName;
                item["CreateAt"]     = YZStringHelper.DateToStringL(task.CreateAt);
                item["NodeName"]     = task.StepName;
                item["ReceiveAt"]    = YZStringHelper.DateToStringL(task.ReceiveAt);
                item["Share"]        = task.Share;
                item["Description"]  = task.Description == null ? "" : task.Description;
            }

            //这里发现一个系统bug,当Start为1时,实际第1条待办也会在结果里,导致实际的数量比Limit多1条。
            if (Start == 1 && children.Count - Limit == 1)
            {
                children.RemoveAt(0);
            }

            return(result);
        }
Esempio n. 24
0
    public static string GetNewFileID()
    {
        using (BPMConnection cn = new BPMConnection())
        {
            cn.WebOpen();

            //确保不覆盖已存在的物理文件
            string fileId;
            string savePath;
            do
            {
                fileId = cn.GetSerialNum("yz_sys_att" + DateTime.Today.ToString("yyyyMMdd"), 4, 1, 1);
                fileId = fileId.Substring("yz_sys_att".Length);

                savePath = AttachmentInfo.FileIDToPath(fileId, AttachmentManager.AttachmentRootPath);
            } while (File.Exists(savePath));

            return(fileId);
        }
    }
Esempio n. 25
0
        public UserCollection GetUsers(BPMConnection cn)
        {
            UserCollection users = new UserCollection();

            foreach (Footmark footmark in this)
            {
                if (users.Contains(footmark.Account))
                {
                    continue;
                }

                User user = User.TryGetUser(cn, footmark.Account);
                if (user != null)
                {
                    users.Add(user);
                }
            }

            return(users);
        }
Esempio n. 26
0
        public void Serialize(BPMConnection cn,JsonItem item)
        {
            User user = null;
            if (cn != null)
                user = User.TryGetUser(cn, this.uid);

            if (user == null)
            {
                user = new User();
                user.Account = this.uid;
            }

            item.Attributes["id"] = this.id;
            item.Attributes["uid"] = user.Account;
            item.Attributes["uname"] = user.ShortName;
            item.Attributes["date"] = YZStringHelper.DateToStringM(this.date);
            item.Attributes["resType"] = this.resType.ToString();
            item.Attributes["resId"] = this.resId;
            item.Attributes["message"] = this.message;
        }
Esempio n. 27
0
        public virtual void Reject(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            int       taskid   = request.GetInt32("TaskID");
            JObject   jPost    = request.GetPostData <JObject>();
            string    comments = (string)jPost["comments"];
            string    formdata = (string)jPost["formdata"];

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                if (!String.IsNullOrEmpty(formdata))
                {
                    BPMProcess.Post(cn, formdata);
                }

                BPMTask.Reject(cn, taskid, comments);
            }
        }
Esempio n. 28
0
        public virtual JObject GetRoleDefine(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            string    fullname = request.GetString("fullname");

            Role             role;
            MemberCollection members = new MemberCollection();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                role    = Role.FromFullName(cn, fullname);
                members = Role.GetMembers(cn, fullname);
            }

            JObject rv = JObject.FromObject(role);

            rv["Members"] = JArray.FromObject(members);
            return(rv);
        }
Esempio n. 29
0
        public static LibraryCollection GetLibraries(IYZDbProvider provider, IDbConnection cn, string uid, string libType, string filter, string sort)
        {
            LibraryCollection alllibs = GetLibraries(provider, cn, libType, filter, sort);

            LibraryCollection libs = new LibraryCollection();

            using (BPMConnection bpmcn = new BPMConnection())
            {
                bpmcn.WebOpen();
                foreach (Library lib in alllibs)
                {
                    string rsid = String.Format("Library://{0}", lib.LibID);
                    if (BPM.Client.Security.SecurityManager.CheckPermision(bpmcn, rsid, BPMPermision.Read))
                    {
                        libs.Add(lib);
                    }
                }
            }
            return(libs);
        }
Esempio n. 30
0
        public virtual JObject GetProcedureParams(HttpContext context)
        {
            YZRequest     request        = new YZRequest(context);
            String        datasourceName = request.GetString("DataSource", null);
            String        procedureName  = request.GetString("ProcedureName");
            FlowDataSet   dataset        = new FlowDataSet();
            FlowDataTable tableParams;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                DataSourceManager.LoadProdecureSchema(cn, datasourceName, procedureName, out tableParams);
                dataset.Tables.Add(tableParams);
            }

            JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType");

            rv["supportOp"] = false;
            return(rv);
        }
Esempio n. 31
0
        public virtual object GetAppLog(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            BPMObjectNameCollection sids;

            using (BPMConnection bpmcn = new BPMConnection())
            {
                bpmcn.WebOpen();
                sids = bpmcn.Token.SIDs;
            }

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    return(LogManager.GetLog(provider, cn, sids, request.GetDateTime("Date"), this.GetFilterString(request, provider), request.GetSortString("LogDate DESC"), request.Start, request.Limit));
                }
            }
        }
Esempio n. 32
0
        public Result AddUser(AuthInfo authInfo, UserInfo userInfo)
        {
            try
            {
                YZService.AuthSystem(authInfo);
                YZAuthHelper.SetAuthCookie(authInfo.RealLoginAccount);

                using (BPMConnection cn = new BPMConnection())
                {
                    cn.WebOpen();
                    OU.AddMember(cn, YZService.LDAPOU2BPMOUPath(userInfo.LDAPOU), null, userInfo.Member, userInfo.User, null, null, null);
                }

                return(Result.SuccessResult);
            }
            catch (Exception e)
            {
                return(Result.FromException(e));
            }
        }
Esempio n. 33
0
File: User.cs Progetto: radtek/EMIP
        public virtual object GetOutOfOffice(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    uid     = YZAuthHelper.LoginUserAccount;

            UserCommonInfo userCommonInfo;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                userCommonInfo = UserCommonInfo.FromAccount(cn, uid);
            }

            return(new
            {
                state = userCommonInfo.OutOfOfficeState.ToString(),
                DateFrom = userCommonInfo.OutOfOfficeFrom,
                DateTo = userCommonInfo.OutOfOfficeTo
            });
        }
Esempio n. 34
0
        public virtual object GetLoginUserACEInfo(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            string    uid     = YZAuthHelper.LoginUserAccount;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                User user = User.FromAccount(cn, uid);

                ACE ace = new ACE();
                ace.SIDType = SIDType.UserSID;
                ace.SID     = user.SID;

                return(new {
                    SID = user.SID,
                    DisplayName = ace.GetSIDDisplayName(cn)
                });
            }
        }
Esempio n. 35
0
        public virtual void SaveFormDefine(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            string    folder   = request.GetString("folder", "");
            string    fileName = request.GetString("fileName");

            string path = request.GetString("path", "");

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                JObject version = new JObject();
                version["lastUpdateTime"] = DateTime.Now;

                cn.SaveFormDefine(Path.Combine(folder, fileName), true, context.Request.InputStream);

                DataVersionManager.FormFolderVersion.UpdateVersion(folder, version);
            }
        }
Esempio n. 36
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!AspxHelper.IsAuthenticated)
        {
            FormsAuthentication.RedirectToLoginPage();
        }

        this.Page.ClientScript.RegisterClientScriptInclude("FormScript", this.ResolveClientUrl("../Scripts/XForm.js"));

        BPMConnection cn = new BPMConnection();

        if (this._treeView.Nodes.Count != 0)
        {
            return;
        }

        try
        {
            cn.WebOpen(this.Page);

            OUCollection ous = cn.GetRootOUs();

            SecurityToken token = cn.Token;
            foreach (OU ou in ous)
            {
                TreeNode node = CreateNode(ou);
                this._treeView.Nodes.Add(node);

                TreeNode firstDeptNode = null;
                OnNodeCreated(cn, ou, node, token, ref firstDeptNode);
                if (firstDeptNode != null)
                {
                    firstDeptNode.Selected = true;
                }
            }
        }
        finally
        {
            cn.Close();
        }
    }
Esempio n. 37
0
    public static JsonItem GetTaskStateJsonItem(BPMConnection cn, TaskState state, int taskid)
    {
        JsonItem rv = new JsonItem();
        rv.Attributes.Add("State", state.ToString().ToLower());

        if (state == TaskState.Running)
        {
            JsonItemCollection children = new JsonItemCollection();
            rv.Attributes.Add("children", children);

            BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid);
            foreach (BPMProcStep step in steps)
            {
                JsonItem item = new JsonItem();
                item.Attributes.Add("StepName", step.StepDisplayName);
                item.Attributes.Add("Share", step.Share);
                item.Attributes.Add("RecipientAccount", step.RecipientAccount);
                item.Attributes.Add("RecipientDisplayName", step.RecipientFullName);
                children.Add(item);
            }
        }

        return rv;
    }
Esempio n. 38
0
    public static void ApplayRecordPermision(BPMConnection cn, JsonItemCollection items,string rsid, string tableName,string jsonitemKeyAttrName)
    {
        //获得资源上的记录级权限种类
        UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, rsid);
        BPMObjectNameCollection permNames = new BPMObjectNameCollection();
        foreach (UserResourcePermision resourcePerm in resourcePerms)
        {
            if (resourcePerm.PermType == UserResourcePermisionType.Record)
                permNames.Add(resourcePerm.PermName);
        }

        //应用权限
        foreach(JsonItem item in items)
        {
            string key = Convert.ToString(item.Attributes[jsonitemKeyAttrName]);
            bool[] rv = RecordSecurityManager.CheckPermision(cn, tableName, key, permNames);

            JsonItem jsonPerm = new JsonItem();
            item.Attributes["perm"] = jsonPerm;
            for (int i = 0; i < permNames.Count; i++)
                jsonPerm.Attributes[permNames[i]] = rv[i];
        }
    }
Esempio n. 39
0
 public static string GetTaskProcessingStatus(BPMConnection cn, TaskState state, int taskid)
 {
     if (state != TaskState.Running)
         return null;
     else
         return GetTaskStateDisplayString(cn, state, taskid);
 }
Esempio n. 40
0
    public static string GetTaskStateDisplayString(BPMConnection cn, TaskState state, int taskid)
    {
        if (state != TaskState.Running)
            return YZStringHelper.GetTaskStateDisplayName(state);

        Dictionary<string, BPMObjectNameCollection> results = new Dictionary<string, BPMObjectNameCollection>();
        BPMStepCollection steps = BPMTask.GetInProcessSteps(cn, taskid);

        foreach (BPMProcStep step in steps)
        {
            string stepName = step.StepDisplayName;
            if(step.Share && String.IsNullOrEmpty(step.RecipientAccount))
                stepName = stepName + "(等待获取)";

            BPMObjectNameCollection users = null;
            if (results.ContainsKey(stepName))
            {
                users = results[stepName];
            }
            else
            {
                users = new BPMObjectNameCollection();
                results.Add(stepName, users);
            }

            string userName = YZStringHelper.GetUserShortName(step.RecipientAccount,step.RecipientFullName);

            if (!String.IsNullOrEmpty(userName) && !users.Contains(userName))
                users.Add(userName);
        }

        List<string> rvs = new List<string>();
        foreach (KeyValuePair<string, BPMObjectNameCollection> kv in results)
        {
            string users = String.Join(",",kv.Value.ToArray());
            if (String.IsNullOrEmpty(users))
                rvs.Add(kv.Key);
            else
                rvs.Add(String.Format("{0}:{1}",kv.Key,users));
        }

        return String.Join(";",rvs.ToArray());
    }
Esempio n. 41
0
        /// <summary>
        /// 根据用户账号取得用户在组织架构中的全名
        /// </summary>
        /// <param name="strUserAccount"></param>
        /// <returns></returns>
        public string OUFullNameByUserAccount(string strUserAccount)
        {
            string strResult = "";
            if (strUserAccount == _userAccount)
            {
                strResult = _userFullName;
            }
            else
            {
                using (BPMConnection bpmConn = new BPMConnection())
                {
                    bpmConn.Open(_eServer, _userAccount, _pwd);
                    MemberCollection positions = OrgSvr.GetUserPositions(bpmConn, strUserAccount);

                    if (positions.Count == 0)
                    {
                        throw new BPMException(string.Format("用户不属于任何组织,账号:{0}", strUserAccount));
                    }
                    strResult = positions[0].FullName;
                }
            }
            return strResult;
        }
Esempio n. 42
0
        /// <summary>
        /// 发起流程申请
        /// </summary>
        /// <param name="processName"></param>
        /// <param name="xmlStream"></param>
        public string StartProcess(string processName, DataSet ds,int PID)
        {
            using (BPMConnection bpmConn = new BPMConnection())
            {
                bpmConn.Open(_eServer, _userAccount, _pwd);
                if (_tag == null)
                {
                    throw new Exception("发起流程前必须指定格式化数据流的方法GeneratePostXML!");
                }
                MemoryStream xmlStream = _tag(processName, _userFullName, ds, PID);
                PostResult result = BPMProcess.Post(bpmConn, xmlStream);

                return string.Format("[State:{0},TaskID:{1},SN:'{2}']", result.State, result.TaskID, result.SN);
            }
        }
Esempio n. 43
0
 public static bool CheckModulePermision(string rsid, string permName)
 {
     using (BPMConnection cn = new BPMConnection())
     {
         cn.WebOpen();
         return CheckModulePermision(cn, rsid, permName);
     }
 }
Esempio n. 44
0
 public static bool CheckModulePermision(BPMConnection cn, string rsid, string permName)
 {
     return UserResourceSecurityManager.CheckPermision(cn, rsid, permName);
 }
Esempio n. 45
0
    public static void ApplayPermision(BPMConnection cn, JsonItemCollection items)
    {
        for(int moduleIndex = 0; moduleIndex < items.Count ; moduleIndex++)
        {
            JsonItem item = items[moduleIndex];
            bool moduleExecute = true;
             
            if (item.Attributes.ContainsKey("modulePerm"))
            {
                YZModulePermision perm = item.Attributes["modulePerm"] as YZModulePermision;
                item.Attributes.Remove("modulePerm");

                //检查模块权限
                moduleExecute = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, "Execute");

                if (moduleExecute)
                {
                    //获得模块config配置项
                    JsonItem config = null;
                    if (item.Attributes.ContainsKey("config"))
                        config = item.Attributes["config"] as JsonItem;
                    else
                    {
                        config = new JsonItem();
                        item.Attributes["config"] = config;
                    }

                    //在config配置项下建perm配置
                    JsonItem jsonPerm = new JsonItem();
                    config.Attributes["perm"] = jsonPerm;

                    //记录模块rsid
                    jsonPerm.Attributes["rsid"] = perm.RSID;

                    //生成工具条上的访问权限
                    if (perm.GenToolbarPermision)
                    {
                        //获得工具条上的模块级权限种类
                        UserResourcePermisionCollection resourcePerms = UserResourceSecurityManager.GetResourcePermisions(cn, perm.RSID);
                        BPMObjectNameCollection permNames = new BPMObjectNameCollection();
                        foreach (UserResourcePermision resourcePerm in resourcePerms)
                        {
                            if (resourcePerm.PermType == UserResourcePermisionType.Module)
                                permNames.Add(resourcePerm.PermName);
                        }

                        //记录工具条上的模块级权限许可情况
                        bool[] rv = UserResourceSecurityManager.CheckPermision(cn, perm.RSID, permNames);
                        for (int i = 0; i < permNames.Count; i++)
                            jsonPerm.Attributes[permNames[i]] = rv[i];
                    }
                }
                else
                {
                    items.RemoveAt(moduleIndex);
                    moduleIndex--;
                }
            }

            //此模块可见则检查子级
            if (moduleExecute)
            {
                if (item.Attributes.ContainsKey("children"))
                {
                    JsonItemCollection children = item.Attributes["children"] as JsonItemCollection;
                    if (children != null)
                    {
                        int allCount = children.Count;
                        ApplayPermision(cn, children);

                        if (allCount != 0 && children.Count == 0)
                        {
                            //item.Attributes["empty"] = true;
                            items.RemoveAt(moduleIndex);
                            moduleIndex--;
                            continue;
                        }
                    }
                }

                if (item.Attributes.ContainsKey("tabs"))
                {
                    JsonItemCollection tabs = item.Attributes["tabs"] as JsonItemCollection;
                    if (tabs != null)
                    {
                        int allCount = tabs.Count;
                        ApplayPermision(cn, tabs);

                        if (allCount != 0 && tabs.Count == 0)
                        {
                            //item.Attributes["empty"] = true;
                            items.RemoveAt(moduleIndex);
                            moduleIndex--;
                            continue;
                        }
                    }
                }
            }
        }
    }