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)
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
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))
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
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'
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
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
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
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)))
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.')
class Yetkililer(ListNode): yetkili = User()