Ejemplo n.º 1
0
 public static List <PhanQuyen> Get(string tu_khoa, PhanQuyenRule rule, PhanQuyenType type, string user,
                                    PhanQuyenObjType obj_type, string obj_id, List <Quyen> quyen,
                                    long ngay_het_tu, long ngay_het_den, string nguoi_tao, long ngay_tao_tu, long ngay_tao_den,
                                    string nguoi_sua, long ngay_sua_tu, long ngay_sua_den, int page, int recs, out long total)
 {
     return(PhanQuyenRepository.Instance.Get(tu_khoa, rule, type, user, obj_type, obj_id, quyen,
                                             ngay_het_tu, ngay_het_den, nguoi_tao, ngay_tao_tu, ngay_tao_den, nguoi_sua, ngay_sua_tu, ngay_sua_den, page, recs, out total));
 }
Ejemplo n.º 2
0
        public IActionResult IsExistQuyen(string user, int group, PhanQuyenObjType obj_type, string obj_id, string owner, List <int> quyen)
        {
            DataResponse res = new DataResponse();

            try
            {
                res.data    = QLCUNL.BL.PhanQuyenBL.IsExistQuyen(user, group, obj_type, obj_id, owner, quyen);
                res.success = true;
            }
            catch (Exception ex)
            {
                res.msg = ex.StackTrace; res.success = false;
            }

            return(Ok(res));
        }
Ejemplo n.º 3
0
        public IActionResult GetQuyenActive(string user, int group, PhanQuyenObjType obj_type, string quyen)
        {
            string[]     fields = new string[] { };
            DataResponse res    = new DataResponse();

            try
            {
                res.data    = QLCUNL.BL.PhanQuyenBL.GetQuyenActive(user, group, obj_type, quyen.Split(',').Select(x => Convert.ToInt32(x)), fields);
                res.success = true;
            }
            catch (Exception ex)
            {
                res.msg = ex.StackTrace; res.success = false;
            }

            return(Ok(res));
        }
Ejemplo n.º 4
0
        public IActionResult Get(string term, PhanQuyenRule rule, PhanQuyenType type, string user,
                                 PhanQuyenObjType obj_type, string obj_id, List <Quyen> quyen,
                                 long ngay_het_tu, long ngay_het_den, string nguoi_tao, long ngay_tao_tu, long ngay_tao_den,
                                 string nguoi_sua, long ngay_sua_tu, long ngay_sua_den, int page, int recs)
        {
            long total;
            DataResponsePaging res = new DataResponsePaging();

            try
            {
                res.data    = QLCUNL.BL.PhanQuyenBL.Get(term, rule, type, user, obj_type, obj_id, quyen, ngay_het_tu, ngay_het_den, nguoi_tao, ngay_tao_tu, ngay_tao_den, nguoi_sua, ngay_sua_tu, ngay_sua_den, page, recs, out total);
                res.success = true;
                res.total   = total;
            }
            catch (Exception ex)
            {
                res.msg = ex.StackTrace; res.success = false;
            }

            return(Ok(res));
        }
Ejemplo n.º 5
0
 public bool IsExistQuyen(string user, int group, PhanQuyenObjType obj_type, string obj_id, string owner, List <int> quyen)
 {
     try
     {
         var res = client.Search <PhanQuyen>(s => s
                                             .Query(q =>
                                                    q.Term(t => t.Field("obj_type").Value(obj_type)) &&
                                                    q.LongRange(r => r.Field("ngay_het").GreaterThan(XMedia.XUtil.TimeInEpoch(DateTime.Now)))
                                                    &&
                                                    ((
                                                         q.Term(t => t.Field("rule").Value(PhanQuyenRule.OBJECT)) &&
                                                         q.Term(t => t.Field("obj_id.keyword").Value(obj_id)) &&
                                                         q.Terms(t => t.Field("quyen").Terms(quyen)) &&
                                                         ((q.Term(t => t.Field("type").Value(PhanQuyenType.USERS)) &&
                                                           q.Term(t => t.Field("user.keyword").Value(user))) ||
                                                          (q.Term(t => t.Field("type").Value(PhanQuyenType.GROUP_USERS)) &&
                                                           q.Term(t => t.Field("user.keyword").Value(group)))
                                                         ))
                                                     ||
                                                     (q.Term(t => t.Field("rule").Value(PhanQuyenRule.USER)) &&
                                                      q.Term(t => t.Field("obj_id.keyword").Value(owner)) &&
                                                      ((q.Term(t => t.Field("type").Value(PhanQuyenType.USERS)) &&
                                                        q.Term(t => t.Field("user.keyword").Value(user))) ||
                                                       (q.Term(t => t.Field("type").Value(PhanQuyenType.GROUP_USERS)) &&
                                                        q.Term(t => t.Field("user.keyword").Value(group)))
                                                      )
                                                     )
                                                    )
                                                    ).Size(0));
         return(res.Total > 0);
     }
     catch
     {
     }
     return(false);
 }
Ejemplo n.º 6
0
        public List <PhanQuyen> Get(string tu_khoa, PhanQuyenRule rule, PhanQuyenType type, string user,
                                    PhanQuyenObjType obj_type, string obj_id, List <Quyen> quyen,
                                    long ngay_het_tu, long ngay_het_den, string nguoi_tao, long ngay_tao_tu, long ngay_tao_den,
                                    string nguoi_sua, long ngay_sua_tu, long ngay_sua_den, int page, int recs, out long total)
        {
            total = 0;
            List <QueryContainer> mustQuery    = new List <QueryContainer>();
            List <QueryContainer> mustNotQuery = new List <QueryContainer>();

            try
            {
                #region Term

                if (!String.IsNullOrWhiteSpace(tu_khoa))
                {
                    mustQuery.Add(new QueryStringQuery()
                    {
                        Query = tu_khoa
                    });
                }
                #endregion Term

                #region Rule

                if (rule != PhanQuyenRule.ALL)
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "rule",
                        Value = rule
                    });
                }

                #endregion Rule

                #region Type

                if (type != PhanQuyenType.ALL)
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "type",
                        Value = type
                    });
                }

                #endregion Type

                #region User

                if (!String.IsNullOrWhiteSpace(user) && user.ToLower() != "all")
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "user.keyword",
                        Value = user
                    });
                }

                #endregion User

                #region Type

                if (obj_type != PhanQuyenObjType.ALL)
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "obj_type",
                        Value = obj_type
                    });
                }

                #endregion Type

                #region ObjId

                if (!String.IsNullOrWhiteSpace(obj_id))
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "obj_id.keyword",
                        Value = obj_id
                    });
                }

                #endregion ObjId

                #region Quyền

                if (quyen.Count > 0)
                {
                    mustQuery.Add(new TermsQuery()
                    {
                        Field = "quyen",
                        Terms = quyen.Select(x => (object)x)
                    });
                }

                #endregion Quyền

                #region Ngày hết

                if (ngay_het_tu > 0 && ngay_het_den > 0)
                {
                    mustQuery.Add(new LongRangeQuery()
                    {
                        Field = "ngay_het",
                        GreaterThanOrEqualTo = ngay_het_tu,
                        LessThanOrEqualTo    = ngay_het_den
                    });
                }

                #endregion Ngày hết

                #region Người tạo

                if (nguoi_tao.ToLower() != "all")
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "nguoi_tao.keyword",
                        Value = nguoi_tao
                    });
                }

                #endregion Người tạo

                #region Ngày tạo

                if (ngay_tao_tu > 0 && ngay_tao_den > 0)
                {
                    mustQuery.Add(new LongRangeQuery()
                    {
                        Field = "ngay_tao",
                        GreaterThanOrEqualTo = ngay_tao_tu,
                        LessThanOrEqualTo    = ngay_tao_den
                    });
                }

                #endregion Ngày tạo

                #region Người sửa

                if (nguoi_sua.ToLower() != "all")
                {
                    mustQuery.Add(new TermQuery()
                    {
                        Field = "nguoi_sua.keyword",
                        Value = nguoi_sua
                    });
                }

                #endregion Người sửa

                #region Ngày sửa

                if (ngay_sua_tu > 0 && ngay_sua_den > 0)
                {
                    mustQuery.Add(new LongRangeQuery()
                    {
                        Field = "ngay_sua",
                        GreaterThanOrEqualTo = ngay_sua_tu,
                        LessThanOrEqualTo    = ngay_sua_den
                    });
                }

                #endregion Ngày sửa

                page = page < 1 ? 1 : page;
                QueryContainer main_query = new QueryContainer(new BoolQuery()
                {
                    Must    = mustQuery,
                    MustNot = mustNotQuery
                });
                SearchRequest request = new SearchRequest
                {
                    Query = main_query,
                    Size  = recs,
                    From  = (page - 1) * recs
                };

                var results = client.Search <PhanQuyen>(request);
                total = results.Total;
                return(results.Documents.ToList());
            }
            catch
            {
            }
            return(new List <PhanQuyen>());
        }
Ejemplo n.º 7
0
        public List <PhanQuyen> GetQuyenActive(string user, int group, PhanQuyenObjType obj_type, IEnumerable <int> quyen, string[] fields = null)
        {
            List <PhanQuyen>      lst  = new List <PhanQuyen>();
            List <QueryContainer> must = new List <QueryContainer>();

            if (string.IsNullOrEmpty(user))
            {
                return(lst);
            }
            try
            {
                must.Add(new TermQuery()
                {
                    Field = "obj_type", Value = obj_type
                } &&
                         new LongRangeQuery()
                {
                    Field = "ngay_het", GreaterThan = XMedia.XUtil.TimeInEpoch(DateTime.Now)
                } &&
                         (
                             (new TermQuery()
                {
                    Field = "rule", Value = PhanQuyenRule.OBJECT
                } &&
                              new TermsQuery()
                {
                    Field = "quyen", Terms = quyen.Select(x => (object)x)
                } &&
                              ((new TermQuery()
                {
                    Field = "type", Value = PhanQuyenType.USERS
                } && new TermQuery()
                {
                    Field = "user.keyword", Value = user
                }) ||
                               (new TermQuery()
                {
                    Field = "type", Value = PhanQuyenType.GROUP_USERS
                } && new TermQuery()
                {
                    Field = "user.keyword", Value = group
                }))
                             )
                             ||
                             (new TermQuery()
                {
                    Field = "rule", Value = PhanQuyenRule.USER
                } &&
                              (new TermQuery()
                {
                    Field = "type", Value = PhanQuyenType.USERS
                } && new TermQuery()
                {
                    Field = "user.keyword", Value = user
                }) ||
                              (new TermQuery()
                {
                    Field = "type", Value = PhanQuyenType.GROUP_USERS
                } && new TermQuery()
                {
                    Field = "user.keyword", Value = group
                })
                             )
                         )
                         );

                SourceFilter so = new SourceFilter();
                if (fields != null && fields.Length > 0)
                {
                    so.Includes = fields;
                }

                /*
                 * SearchRequest req = new SearchRequest(_default_index);
                 * req.Query = new QueryContainer(new BoolQuery() { Must = must});
                 * req.From = 0;
                 * req.Size = 9999;
                 * if (fields != null)
                 *  req.Source = new SourceFilter() { Includes = fields };
                 *
                 * var res = client.Search<PhanQuyen>(req);
                 *
                 * lst = res.Documents.ToList();
                 */
                lst = GetObjectScroll <PhanQuyen>(_default_index, new QueryContainer(new BoolQuery()
                {
                    Must = must
                }), so).ToList();
            }
            catch
            {
            }
            finally
            {
            }
            return(lst);
        }
Ejemplo n.º 8
0
 public static bool IsExistQuyen(string user, int group, PhanQuyenObjType obj_type, string obj_id, string owner, List <int> quyen)
 {
     return(PhanQuyenRepository.Instance.IsExistQuyen(user, group, obj_type, obj_id, owner, quyen));
 }
Ejemplo n.º 9
0
 public static List <PhanQuyen> GetQuyenActive(string user, int group, PhanQuyenObjType obj_type, IEnumerable <int> quyen, string[] fields = null)
 {
     return(PhanQuyenRepository.Instance.GetQuyenActive(user, group, obj_type, quyen, fields));
 }