Ejemplo n.º 1
0
        /// <summary>
        /// 列出所有程式並依使用者判斷可否使用
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable QueryAllProgramForUser(ArrayList ParameterList)
        {
            try
            {
                int i = 0;
                int j = 0;
                SYS_ProgramDBO prog = new SYS_ProgramDBO(ref USEDB);
                SYS_ROLEPROGAUTHRELDBO rolepg = new SYS_ROLEPROGAUTHRELDBO(ref USEDB);
                SYS_USERPROGAUTHRELDBO userpg = new SYS_USERPROGAUTHRELDBO(ref USEDB);
                //抓取目前所有程式
                DataTable ProgramDt = prog.doQueryAllWithStatus();
                //抓取目前使用者所屬角色所有程式
                DataTable RolePGDt = rolepg.doQueryByUserID(ParameterList);

                //列出角色權限與功能列表相符清單
                for (i = 0; i < ProgramDt.Rows.Count; i++)
                {
                    for (j = 0; j < RolePGDt.Rows.Count; j++)
                    {
                        //角色權限與功能列表相符
                        if (ProgramDt.Rows[i]["CODE"].ToString() == RolePGDt.Rows[j]["PROGRAMCODE"].ToString())
                        {
                            //如果未被設定開啟
                            if (ProgramDt.Rows[i]["Status"].ToString() == "0")
                            {
                                ProgramDt.Rows[i]["Status"] = 1;
                            }
                        }
                    }
                }

                //列出使用者權限與功能列表相符清單
                DataTable UserPGDt = userpg.doQueryByUserID(ParameterList);

                for (i = 0; i < ProgramDt.Rows.Count; i++)
                {
                    for (j = 0; j < UserPGDt.Rows.Count; j++)
                    {
                        //人員權限與功能列表相符
                        if (ProgramDt.Rows[i]["CODE"].ToString() == UserPGDt.Rows[j]["PROGRAMCODE"].ToString())
                        {
                            //如果未被設定開啟
                            if (ProgramDt.Rows[i]["Status"].ToString() == "0")
                            {
                                ProgramDt.Rows[i]["Status"] = 1;
                            }
                        }
                    }
                }

                return ProgramDt;
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }