Beispiel #1
0
    def create_user(cls):
        """
        Bu metot ile yeni kullanıcı yaratılır ya da varolan kullanıcı getirilir.

        """

        # FIXME: To prevent existence of test_user in production,
        # this should be depend on an env. flag
        cls.cleanup()
        # Tanımlı parametrelere sahip soyut rol varsa rolü döndürür, yoksa soyut rol yaratır.
        abs_role, new = AbstractRole(super_context).objects.get_or_create(
            id=1, name='W.C. Hero')
        cls.client.user, new = User(super_context).objects.get_or_create(
            {"password": user_pass}, username='******')
        cls.client.user.superuser = True
        cls.client.user.save()

        if new:
            # Role modelinden role nesnesi yaratır.
            role = Role(super_context,
                        user=cls.client.user,
                        abstract_role=abs_role).save()
            # sleep(2)
            # role nesnesine, yetkiler eklenir.
            for perm in Permission(super_context).objects.raw(
                    "code:crud* OR code:login* OR code:logout* OR code:User* OR code:Personel* OR code:yeni*"
            ):
                role.Permissions(permission=perm)
            role.save()
            sleep(1)

            # Kullanıcı güncellenir.
            cls.client.user = User(super_context).objects.get(
                cls.client.user.key)
Beispiel #2
0
def new_user(username=None, password=None, superuser=False):
    user = User(
            username=username or fake.user_name(),
            password=password or fake.password(),
            superuser=superuser
    )
    user.save()
    return user
Beispiel #3
0
 def run(self):
     from ulakbus.models import AbstractRole, User, Role, Permission
     if User.objects.filter(username=self.manager.args.username).count():
         return "User already exists!"
     abs_role, new = AbstractRole.objects.get_or_create(name=self.manager.args.abstract_role)
     user = User(username=self.manager.args.username, superuser=self.manager.args.super)
     user.set_password(self.manager.args.password)
     user.save()
     role = Role(user=user, abstract_role=abs_role).save()
     perm_list = []
     for perm in Permission.objects.raw(self.manager.args.permission_query):
         role.Permissions(permission=perm)
         perm_list.append(perm.name)
     role.save()
     user_type = 'super user' if self.manager.args.super else 'user'
     return "New %s created with these permissions: \n\n%s" % (user_type, "\n".join(perm_list))
Beispiel #4
0
class BAPDuyuru(Model):
    class Meta:
        verbose_name = __(u"BAP Duyuru")
        verbose_name_plural = __(u"BAP Duyurular")
        list_fields = [
            'duyuru_baslik', 'eklenme_tarihi', 'son_gecerlilik_tarihi'
        ]

    ekleyen = User()
    eklenme_tarihi = field.Date(__(u"Eklenme Tarihi"))
    son_gecerlilik_tarihi = field.Date(__(u"Son Geçerlilik Tarihi"))
    duyuru_baslik = field.String(__(u"Duyuru Başlığı"))
    duyuru_icerik = field.Text(__(u"Duyuru İçeriği"))
    yayinlanmis_mi = field.Boolean(__(u"Yayınlanmış mı?"), default=False)

    class EkDosyalar(ListNode):
        class Meta:
            verbose_name = __(u"Ek Dosya")
            verbose_name_plural = __(u"Ek Dosyalar")
            list_fields = ['dosya_aciklamasi']

        ek_dosya = field.File(__(u"Ek Dosya Seç"), random_name=True)
        dosya_aciklamasi = field.String(__(u"Dosya Açıklaması"))

    def __unicode__(self):
        return "%s" % self.duyuru_baslik
Beispiel #5
0
def test_add_user_then_login():
    User.objects._clear_bucket()
    sleep(1)
    u = User(username='******')
    u.set_password('123')
    u.save()
    sleep(1)
    wfc = workflow_connector()
    session = MockSessionStore()
    req = make_request(session)
    resp = DotDict()
    wfc.on_post(req, resp=resp, wf_name='simple_login')
    assert req['context']['result']['forms'] == LoginForm(types={"password": "******"}).serialize()
    req = make_request(session, cmd='do',
                       login_crd={'username': '******', 'password': '******'})
    wfc.on_post(req, resp=DotDict(), wf_name='simple_login')
    assert session['user_id'] == u.key
    assert req['context']['result']['screen'] == 'dashboard'
Beispiel #6
0
 def kaydi_bitir(self):
     """
     Formdan gelen bilgilerle firma nesnesi kaydedilir. Durumu, değerlendirme sürecinde anlamına
     gelen 1 yapılır. 
 
     """
     form = self.input['form']
     temp_password = hashlib.sha1(get_temp_password()).hexdigest()
     user = User(name=form['isim'],
                 surname=form['soyad'],
                 username=form['k_adi'],
                 e_mail=form['yetkili_e_posta'],
                 password=temp_password,
                 is_active=False)
     user.blocking_save()
     self.set_form_data_to_object()
     self.object.Yetkililer(yetkili=user)
     self.object.durum = 1
     self.object.save()
     self.current.task_data['firma_key'] = self.object.key
Beispiel #7
0
def new_user(username=None, password=None, superuser=False):
    """
    Rastgele verileri ve parametre olarak verilen verileri
    kullanarak yeni değerlendirme notu kaydı oluşturup kaydeder.

    Args:
        username (str): Kullanıcı adı
        password (str): Şifre
        superuser (bool): Süper kullanıcı

    Returns:
        Kullanıcı kaydı

    """

    user = User(username=username or fake.user_name(),
                password=password or fake.password(),
                superuser=superuser)
    user.save()
    return user
Beispiel #8
0
def new_user(username=None, password=None, superuser=False):
    """
    Rastgele verileri ve parametre olarak verilen verileri
    kullanarak yeni değerlendirme notu kaydı oluşturup kaydeder.

    Args:
        username (str): Kullanıcı adı
        password (str): Şifre
        superuser (bool): Süper kullanıcı

    Returns:
        Kullanıcı kaydı

    """
    
    user = User(
        username=username or fake.user_name(),
        password=password or fake.password(),
        superuser=superuser
    )
    user.save()
    return user
Beispiel #9
0
    def run(self):
        from ulakbus.models import AbstractRole, User, Role, Permission
        import distutils.util
        from pyoko.exceptions import ObjectDoesNotExist

        # update existing users
        if self.manager.args.toggle_is_user_active is not None:
            try:
                user = User.objects.get(username=self.manager.args.username)
            except ObjectDoesNotExist:
                print "Böyle bir kullanıcı bulunmamaktadır."
                return
            activeness = self.manager.args.toggle_is_user_active
            try:
                user.is_active = distutils.util.strtobool(activeness)
            except ValueError:
                print "Lütfen True ya da False değeri giriniz."
                return
            user.blocking_save()
            return

        # create new user
        if User.objects.filter(username=self.manager.args.username).count():
            print("User already exists!")
            return
        if not self.manager.args.active:
            print(
                "Kullanıcının sisteme login olmasını istiyorsanız aktifleştirmeyi unutmayınız. Aktifleştirmek için --toggle_is_user_active parametresini kullanınız."
            )
        abs_role, new = AbstractRole.objects.get_or_create(
            name=self.manager.args.abstract_role)
        user = User(username=self.manager.args.username,
                    superuser=self.manager.args.super,
                    is_active=self.manager.args.active)
        user.set_password(self.manager.args.password)
        user.save()
        role = Role(user=user, abstract_role=abs_role)
        role.save()
        perm_list = []
        for perm in Permission.objects.raw(self.manager.args.permission_query):
            role.Permissions(permission=perm)
            perm_list.append(perm.name)
        role.save()
        user_type = 'super user' if self.manager.args.super else 'user'
        print("New %s created with these permissions: \n\n%s" %
              (user_type, "\n".join(perm_list)))
Beispiel #10
0
 def run(self):
     from ulakbus.models import AbstractRole, User, Role, Permission
     if User.objects.filter(username=self.manager.args.username).count():
         print("User already exists!")
         return
     abs_role, new = AbstractRole.objects.get_or_create(name=self.manager.args.abstract_role)
     user = User(username=self.manager.args.username, superuser=self.manager.args.super)
     user.set_password(self.manager.args.password)
     user.save()
     role = Role(user=user, abstract_role=abs_role)
     role.save()
     perm_list = []
     for perm in Permission.objects.raw(self.manager.args.permission_query):
         role.Permissions(permission=perm)
         perm_list.append(perm.name)
     role.save()
     user_type = 'super user' if self.manager.args.super else 'user'
     print("New %s created with these permissions: \n\n%s" % (user_type, "\n".join(perm_list)))
    def test_kadro_islemleri(self):
        """
        Kadro işlemlerinin ilk adımında kayıtlı olan kadroların listesi döner.

        Veritabanından çekilen kadro kayıtlarının sayısı ile sunucudan dönen kadro
        kayıtlarının sayısı karşılastırılıp test edilir.

        Seçilen kadronun, kadro durumu değiştirilir. Bu değişikliğin kayıt edilip
        edilmediği test edilir.

        Seçilen  kadro durumuna göre filtereleme yapılır, yapılan filterelemenin
        doğruluğunu bütün kayıt durumlarında test eder.

        Filterelemenin ardından sunucudan dönen kadro kayıtları sayısı ile db'den
        duruma göre çekilen kadro kayıtlarının sayısı karşılaştılıp test edilir.

        Yeni kayıt eklendikten sonra döndürülen kayıt sayısının, başlangıçtaki kayıt
        sayısından bir fazla olup olmadığın test edilir.

        Sadece saklı kadrolar silinir. Bir kaydı silmek için seçtiğimizde kadro durum

        1 ise;
             Kadro silinir, başlangıçtaki kadro kayıtları sayısı ile silme islemi
             sonucundaki kadro kayıtları sayısı test edilir.

        2,3,4 ise;
             Kadro silinmez, başlangıçtaki kadro kayıtları sayısı ile silme islemi
             sonucundaki kadro kayıtları sayısı test edilir.


        """
        def len_1(lst):
            """
            ``response`` ile gelen ``object`` içerisinde field açıklamaları
            satırı bulunmaktadır. Bu sebeple nesnelerin gerçek sayısını
            bulmak için 1 eksiltiyoruz.

            Args:
                lst (list): kadro nesneleri listesi

            Returns:
                int: lst uzunlugunun 1 eksigi

            """

            return len(lst) - 1

        # Veritabanından personel işleri kullanıcısı seçer.
        usr = User(super_context).objects.get('UuXR8pmKQNzfaPHB2K5wxhC7WDo')

        # Kullanıcıya login yaptırılır.
        self.prepare_client('/kadro_islemleri', user=usr)
        resp = self.client.post()

        # Kayıtlı kadroların listesini veritabanından çeker.
        kadro_lst = Kadro.objects.filter()

        # Sunucudan dönen kadro kayıtlarının sayısı.
        num_of_kadro = len_1(resp.json['objects'])

        assert len(kadro_lst) == num_of_kadro

        # Veritabanından kadro kaydı seçer.
        kadro = Kadro.objects.get('8ICt8g0NpPdn5eDfh4yz0vsLqkn')

        # Seçilen kadronun ilk durumu.
        beginning_state = kadro.get_durum_display()

        # Kadronun durumunu değiştirir. Saklı ise İzinli, İzinli ise Saklı yapar.

        self.client.post(cmd='sakli_izinli_degistir',
                         object_id='8ICt8g0NpPdn5eDfh4yz0vsLqkn')

        # Veritabanından kadro kaydı seçer.
        kadro = Kadro.objects.get('8ICt8g0NpPdn5eDfh4yz0vsLqkn')

        # Kadronun son durumu.
        last_state = kadro.get_durum_display()
        # Saklı izinli değiştir komutundan sonra kadronun durumunu kontrol eder.
        assert beginning_state != last_state

        # durum bir kez daha degistirilir.
        self.client.post(cmd='sakli_izinli_degistir',
                         object_id='8ICt8g0NpPdn5eDfh4yz0vsLqkn')

        # Veritabanından kadro kaydı seçer.
        kadro = Kadro.objects.get('8ICt8g0NpPdn5eDfh4yz0vsLqkn')

        # Kadronun son durumu.
        last_state = kadro.get_durum_display()

        # Ikinci saklı izinli değiştir komutundan sonra kadronun durumunu kontrol eder.
        assert beginning_state == last_state

        # İş akışının başlangıç token değeridir.
        filtre = {'durum': {'values': ["1"], 'type': 'check'}}
        # Seçilen kadro durumuna göre filtreler.
        resp = self.client.post(filters=filtre)
        assert 'list_filters' in resp.json

        # Sunucudan dönen saklı kadro kayıtlarının sayısını tutar.
        num_of_sakli = 0

        # Duruma göre yapılan filtrelemenin doğruluğunu bütün kayıt durumlarında test eder.
        for i in range(1, len(resp.json['objects'])):
            kadro_key = resp.json['objects'][i]['key']
            kadro = Kadro.objects.get(kadro_key)
            assert kadro.get_durum_display() == 'Saklı'
            num_of_sakli += 1

        # Veritabanından çekilen saklı kadro sayısı ile sunucudan dönen saklı
        # kadro sayıları karşılaştırılır.
        assert len(Kadro.objects.filter(durum=1)) == num_of_sakli

        # Crud iş akışı başlatılır.
        self.client.token = ''
        self.client.set_path('/crud')
        resp = self.client.post(model='Unit',
                                cmd='select_list',
                                query='Halkla')

        birim_no = resp.json['objects'][0]['key']

        # Yeni kadro kaydı ekler.
        self.client.set_path('/kadro_islemleri')
        self.client.post()
        form_token = self.client.token
        resp = self.client.post(cmd='add_edit_form', form=dict(add=1))

        # Kadro ekle formu doldurulur.
        kadro_data = {
            'unvan': 22469,
            'unvan_aciklama': '22464',
            'derece': 8,
            'birim_id': birim_no,
            'kadro_no': 4,
            'save_edit': 1,
            'aciklama': '8.dereceden kadro'
        }

        # Kadro kaydını kaydeder.
        self.client.post(cmd='kadro_kaydet', form=kadro_data, token=form_token)

        time.sleep(1)
        yeni_kadro = Kadro.objects.get(unvan=22469,
                                       unvan_aciklama='22464',
                                       derece=8)

        last_kadro_lst = Kadro.objects.filter()

        self.client.set_path('/kadro_islemleri')
        resp = self.client.post()

        assert len(last_kadro_lst) == num_of_kadro + 1
        assert len_1(resp.json['objects']) == len(last_kadro_lst)

        # Seçilen kadronun durumu.
        kadro_durum = yeni_kadro.durum

        # Kadronun durumu saklı ise silinir, değilse silinmez.
        self.client.post(cmd='kadro_sil_onay_form', object_id=yeni_kadro.key)
        resp = self.client.post(cmd='kadro_sil',
                                form={
                                    'evet': 1,
                                    'hayir': 'null'
                                })

        kadro_lst = Kadro.objects.filter()

        assert len_1(resp.json['objects']) == len(kadro_lst)

        if kadro_durum not in [1, 2, 3, 4]:
            raise Exception('Geçersiz kadro durumu.')
Beispiel #12
0
 class Yetkililer(ListNode):
     yetkili = User()