IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   IRCServices (https://www.ircforumlari.net/ircservices/)
-   -   ircservices yetki.txt (https://www.ircforumlari.net/ircservices/855846-ircservices-yetkitxt.html)

KivanC 28 Ocak 2020 17:52

ircservices yetki.txt
 
merhaba kolay gelsin ircservices yetki.txt yapmamız mumkunmudur. yetki.txt nicki olmayan hiç bir komut uygulamasın örnek getpass, drop, suspend gibi böyle birşey yapmamız mümkünmüdür. @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] usta çözebilirmisin bu işi.. tşkler şimdiden.

Emrehan 29 Ocak 2020 21:55

Cevap: ircservices yetki.txt
 
Alıntı:

KivanC Nickli Üyeden Alıntı (Mesaj 1042245567)
merhaba kolay gelsin ircservices yetki.txt yapmamız mumkunmudur. yetki.txt nicki olmayan hiç bir komut uygulamasın örnek getpass, drop, suspend gibi böyle birşey yapmamız mümkünmüdür. @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] usta çözebilirmisin bu işi.. tşkler şimdiden.

ircservices/lib/ dizinine rootlar.txt diye bir metin belgesi atıp içine yetkili olacak nickleri alt alta ekleyin. En son satırdan sonra 2-3 kez daha boş enter'layın. Her eklemenizde en son satırdan sonra 2-3 boş satır olsun (Nicklerin arasında boşluk olmasın sadece en alt satırda 2-3 boş satır olması yeterlidir).

Tek dosyada işlem yapacağız;
Kod:

ircservices*/modules/operserv/main.c
dosyasını açıp,

Kod:

static int8 no_supass = 1;
satırını bulun ve altına,

Kod:

static char rootnickler[512][512];
static int rootsayisi = 0;
static void rootkontrol();
static void rootkontrol()
{
        char nickler[512];
        char *e;
        FILE *txt = fopen("rootlar.txt","r");
        memset(&rootnickler, 0, sizeof(rootnickler));
        if (txt == NULL) return;
        do {
                e = fgets(nickler, sizeof(nickler), txt);
                if (e != NULL)
                        strscpy(rootnickler[rootsayisi], nickler, strlen(nickler));
                        rootsayisi++;
        }
        while (e != NULL);
        fclose(txt);
}

satırlarını ekleyin.

Sonra yine aynı dosyada;
Kod:

if (u->flags & UF_SERVROOT)
                return 1;

satırlarını bulup hemen altına,
Kod:

        int e = 0;
        for (e=0; e < rootsayisi; e++)
                if (stricmp(u->nick, rootnickler[e]) == 0 && is_oper(u) && user_identified(u))
                        return 1;

Yine aynı dosyada;
Kod:

remove_callback(NULL, "save data complete", do_update_complete);
satırının üstüne
Kod:

rootkontrol();
satırlarını ekleyip, servisinize make ve make install komutlarını uyguladıktan sonra restart edin.

Restart'tan sonra sunucu üzerinde /os update yapın rootlar.txt'deki ekli olan nicklere ServicesRoot erişimi gelecektir.

Her yeni nick eklemenizden sonra /os update komutunu kullanın.

İstediğiniz herhangi bir komutun yetki seviyesini de ServicesRoot'lar kullanabilir şeklinde ayarlarsınız talebiniz gerçekleşmiş olur.

İyi forumlar.

KivanC 30 Ocak 2020 11:50

Cevap: ircservices yetki.txt
 
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] teşekkür ederim şunuda ekleye bilirmiyiz örnek txt ekli olmayan komut uyguladığı zaman txt ekli olmadığımıza bu komutu kullanamazsınız seklinde bir mesaj yapa bilirmiyiz.

Emrehan 30 Ocak 2020 17:34

Cevap: ircservices yetki.txt
 
Alıntı:

KivanC Nickli Üyeden Alıntı (Mesaj 1042246730)
@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] teşekkür ederim şunuda ekleye bilirmiyiz örnek txt ekli olmayan komut uyguladığı zaman txt ekli olmadığımıza bu komutu kullanamazsınız seklinde bir mesaj yapa bilirmiyiz.

O zaman olayı ServicesRoot'tan çıkarıp farklı bir tanıma almak gerek ve istediğiniz her komuta tek tek bu tanımları eklemeniz lazım. O şekilde olabilir ancak ve bu da sizi çok fazla uğraştırır. Yine de farketmez derseniz ayarlarız onu da.

KivanC 30 Ocak 2020 17:51

Cevap: ircservices yetki.txt
 
benim için fark etmez ayarlarsanız çok sevinirim tşkler ustam.

Emrehan 30 Ocak 2020 18:44

Cevap: ircservices yetki.txt
 
Alıntı:

KivanC Nickli Üyeden Alıntı (Mesaj 1042246988)
benim için fark etmez ayarlarsanız çok sevinirim tşkler ustam.

Kod:

int e = 0;
        for (e=0; e < rootsayisi; e++)
                if (stricmp(u->nick, rootnickler[e]) == 0 && is_oper(u) && user_identified(u))
                        return 1;

main.c dosyasında eklediğiniz yukarıdaki satırları geri silin.

-

Yine main.c dosyasında;
Kod:

EXPORT_FUNC(is_services_root)
satırının üstüne;
Kod:

int yetkilimi(User *u);
int yetkilimi(User *u)
{
        int e = 0;
        for (e=0; e < rootsayisi; e++)
                if (stricmp(u->nick, rootnickler[e]) == 0 && is_oper(u) && user_identified(u))
                        return 1;
               
        return 0;
}

satırlarını ekleyin.

-

Mesela GETPASS komutuna ayar vereceğinizi düşünelim.

ircservices*/modules/nickserv/main.c dosyasında;
Kod:

static int cb_command      = -1;
satırının üstüne,
Kod:

extern int yetkilimi(User *u);
satırını ekleyin.

-

Son olarak do_getpass { ... } içerisinde düzgün çalıştırabileceğiniz bi noktaya;
Kod:

if (yetkilimi(u) == 0 && is_oper(u) && user_identified(u)) {
          send_cmd(s_NickServ, "NOTICE %s :Yetkili dosyasında ekli degilsiniz. Bu komutu kullanamazsiniz.", u->nick);
          return;
}

gibi ekleyip çalıştırabilirsiniz.

make && make install ve restart ile editi aktif edersiniz.

Denemedim ama çalışır diye düşünüyorum.

İyi forumlar.

KivanC 30 Ocak 2020 18:48

Cevap: ircservices yetki.txt
 
üstteki verdiğiniz tüm kodları silecem yanlış silmeyimde

Emrehan 30 Ocak 2020 18:50

Cevap: ircservices yetki.txt
 
Alıntı:

KivanC Nickli Üyeden Alıntı (Mesaj 1042247017)
üstteki verdiğiniz tüm kodları silecem yanlış silmeyimde

Alıntı:

Emrehan Nickli Üyeden Alıntı (Mesaj 1042246384)
Kod:

if (u->flags & UF_SERVROOT)
                return 1;

satırlarını bulup hemen altına,
Kod:

        int e = 0;
        for (e=0; e < rootsayisi; e++)
                if (stricmp(u->nick, rootnickler[e]) == 0 && is_oper(u) && user_identified(u))
                        return 1;

satırlarını ekleyip

İlk postumda verdiğim editteki sadece buradaki işlemi geri almış olacaksınız yani.

KivanC 30 Ocak 2020 18:55

Cevap: ircservices yetki.txt
 
Son olarak do_getpass { ... } içerisinde düzgün çalıştırabileceğiniz bi noktaya;
Kod:

if (yetkilimi(u) == 0 && is_oper(u) && user_identified(u)) {
          send_cmd(s_NickServ, "NOTICE %s :Yetkili dosyasında ekli degilsiniz. Bu komutu kullanamazsiniz.", u->nick);
          return;
}

gibi ekleyip çalıştırabilirsiniz.

make && make install ve restart ile editi aktif edersiniz.

Denemedim ama çalışır diye düşünüyorum.

İyi forumlar.[/QUOTE]


bunu hangi satırın altına ekliyoruz?

Emrehan 30 Ocak 2020 19:00

Cevap: ircservices yetki.txt
 
Alıntı:

KivanC Nickli Üyeden Alıntı (Mesaj 1042247020)
bunu hangi satırın altına ekliyoruz?

ircservices*/modules/nickserv/main.c dosyasında;
Kod:

} else if (i == 0) {
        notice_lang(s_NickServ, u, NICK_GETPASS_UNAVAILABLE);
    } else {

burayı
Kod:

} else if (i == 0) {
        notice_lang(s_NickServ, u, NICK_GETPASS_UNAVAILABLE);
    } else {
                if (yetkilimi(u) == 0 && is_oper(u) && user_identified(u)) {
                        send_cmd(s_NickServ, "NOTICE %s :Yetkili dosyasında ekli degilsiniz. Bu komutu kullanamazsiniz.", u->nick);
                        return;
                }

şeklinde değiştirirseniz GETPASS komutuna işlemiş olursunuz.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 20:48.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk