Beispiel #1
0
        public bool YetkiKaydet(List <vYetkiTanim> yetkiler)
        {
            List <tblYetkiler> yetkiTbl = new List <tblYetkiler>();

            //Bölüm için yetki tanımlama
            if (this._BolumId != 0)
            {
                foreach (vYetkiTanim bYetkiTanim in yetkiler)
                {
                    tblYetkiler bolumYetki = db.GetGeneric <tblYetkiler>(c => c.BolumId == this._BolumId && c.YetkiId == bYetkiTanim.Id).FirstOrDefault();
                    if (bolumYetki == null)
                    {
                        bolumYetki = new tblYetkiler()
                        {
                            BolumId    = this._BolumId,
                            PersonelId = null,
                            YetkiId    = bYetkiTanim.Id,
                            YetkiVarMi = bYetkiTanim.YetkiliMi ?? true
                        };
                    }
                    else
                    {
                        bolumYetki.YetkiVarMi = bYetkiTanim.YetkiliMi ?? true;
                    }
                    yetkiTbl.Add(bolumYetki);
                }
            }
            //kullanıcı için yetki tanımlama
            else
            {
                foreach (var kYetkiTanim in yetkiler)
                {
                    tblYetkiler kullaniciYetki = db.GetGeneric <tblYetkiler>(c => c.PersonelId == this._PersonelId && c.YetkiId == kYetkiTanim.Id).FirstOrDefault();
                    if (kullaniciYetki == null)
                    {
                        kullaniciYetki = new tblYetkiler()
                        {
                            PersonelId = this._PersonelId,
                            BolumId    = null,
                            YetkiId    = kYetkiTanim.Id,
                            YetkiVarMi = kYetkiTanim.YetkiliMi ?? true
                        };
                    }
                    else
                    {
                        kullaniciYetki.YetkiVarMi = kYetkiTanim.YetkiliMi ?? true;
                    }
                    yetkiTbl.Add(kullaniciYetki);
                }
            }

            return(YetkiKaydet(yetkiTbl));
        }
Beispiel #2
0
        public List <vYetkiTanim> YetkileriGetir()
        {
            if (this._BolumId == 0 && this._PersonelId == 0)
            {
                return(null);
            }

            var query = PredicateBuilder.True <tblYetkiler>();

            if (this.BolumId != 0)
            {
                query = query.And(c => c.BolumId == this._BolumId);
            }
            tblPersoneller kullaniciBolum = null;

            if (this._PersonelId != 0)
            {
                query          = query.And(c => c.PersonelId == this._PersonelId);
                kullaniciBolum = db.GetGeneric <tblPersoneller>(c => c.Id == this._PersonelId).FirstOrDefault();
            }

            List <tblYetkiler> kullaniciYetki = db.GetGeneric <tblYetkiler>(query);
            //mevcut tüm yetkiler getiriliyor
            List <vYetkiTanim> yetkiler = YetkiTanimlariGetir();

            //bölümlerin ya da kullanıcıların yetkileri atanıyor
            for (int i = 0; i < yetkiler.Count; i++)
            {
                if (yetkiler[i].AltYetkiler.Count == 0)
                {
                    //kullanıcıya özgü yetki varsa yetki kullanıcının yetkisinden alınır.
                    tblYetkiler yetki = kullaniciYetki.Find(c => c.YetkiId == yetkiler[i].Id && c.PersonelId == this._PersonelId);
                    //kullanıcıya özgü yetki yoksa, yetki kulanıcının bölümünün yetkisinden alınır.
                    if (yetki == null)
                    {
                        yetki = db.GetGeneric <tblYetkiler>(c => c.YetkiId == yetkiler[i].Id && c.BolumId == (kullaniciBolum == null ? this.BolumId : kullaniciBolum.BolumId)).FirstOrDefault();
                    }
                    yetkiler[i].YetkiliMi = yetki == null ? true : yetki.YetkiVarMi;
                }

                else
                {
                    for (int j = 0; j < yetkiler[i].AltYetkiler.Count; j++)
                    {
                        tblYetkiler yetkiAlt = kullaniciYetki.Find(c => c.YetkiId == yetkiler[i].AltYetkiler[j].Id);
                        if (yetkiAlt == null)
                        {
                            yetkiAlt = db.GetGeneric <tblYetkiler>(c => c.YetkiId == yetkiler[i].AltYetkiler[j].Id && c.BolumId == kullaniciBolum.BolumId).FirstOrDefault();                 //kullaniciYetki.Find(c => c.YetkiId == yetkiler[i].AltYetkiler[j].Id && c.BolumId == this._BolumId);
                        }
                        yetkiler[i].AltYetkiler[j].YetkiliMi = yetkiAlt == null ? true : yetkiAlt.YetkiVarMi;
                    }

                    if (yetkiler[i].AltYetkiler.Count == yetkiler[i].AltYetkiler.Count(c => c.YetkiliMi == true))
                    {
                        yetkiler[i].YetkiliMi = true;
                    }
                    else
                    {
                        yetkiler[i].YetkiliMi = null;
                    }
                }
            }

            return(yetkiler);
        }