Stránka 1 z 2

PEX via MySQL - Základy (1.díl)

Napsal: 09 črc 2012, 09:42
od Qentus
Miniseriál o PEX a MySQL:
- PEX via MySQL - Základy (1.díl)
- PEX via MySQL - Migrace (2.díl)

Základy

Požadavky:
- schopnost nainstalovat PEX - viewtopic.php?f=85&t=4180
- přístup k databázi
- chuť naučit se něco nového a vylepšit svůj server


Výhody:
- dynamické přidávání/odebírání pravomocí přes různé PHP scripty
- už žádné chyby kvůli špatnému zápisu do souboru

Nevýhody:
- na začátek možná nepřehledné, ve výsledku ovšem 1000x lepší

Budu tedy předpokládat, že máte nainstalovaný PEX a že máte přístup do DB.
Pokud umíte základy SQL/MySQL. tak není co řešit. Pokud neumíte, tak se taky ničeho nemusíte bát - můžete využít grafické rozhraní jakým je např. PhpMyAdmin.

1.krok
- do config.yml dejte vložte toto a upravte si to dále podle sebe

Kód: Vybrat vše

permissions:
  basedir: plugins/PermissionsEx
  backend: sql
  backends:
    sql:
      driver: mysql
      uri: mysql://adresa_vasi_db
      user: jmeno_uzivatele
      password: heslo
  superperms:
    disable-unmatched: false
    enable: true
    matched-permissions: true
    debug: false
    raw-permissions: true
    strict-mode: false
    parent-nodes: true
  createUserRecords: false
  allowOps: true
  debug: false


2.krok
- reload/restart serveru

V databázi byste teď měli mít něco takového
Spoiler: zobrazit
Obrázek

K čemu jaký table slouží?
- permissions - přiřazení pravomocí k hráči/skupině (více v další kapitole)
- permissons_entity - seznam všech skupin (více v další kapitole)
- permissions_inheritance - kdo patří do jaké skupiny (více v další kapitole)


To je z instalace vše.

Teď se podíváme blíže na funkce daných tabulek.

Tabulka permissions
Vkládání nových záznamů
Spoiler: zobrazit
Obrázek

- kolonky "id" si nevšímáme - hodnota se sama vyplní a určuje pořadí záznamu
- do kolonky "name" píšeme název skupiny/hráče pro které přidáváme práva
- kolonka "type" slouží k určení, jestli přidáváme práva skupině a nebo hráči.
  • když chci nastavit třeba fly pro hráče Qentus tak napíšu číslo 1
  • když chci nastavit fly pro skupinu Admin, tak napíšu číslo 0
- do kolonky "permission" píšeme název pravomoce - např. "essentials.fly" (bez úvozovek) a nebo můžeme pravomoci znegovat (uživateli/skupině právo odebereme) zápisem "-essentials.fly"
- do kolonky "world" napíšeme pro jaké světy to má platit (můžeme napsat jen 1 svět - pro více světů potřebujeme více záznamů)
  • pokud to má být globálně, tak necháme políčko prázdné
- políčko "value" slouží k nastavení nějaké dodatečné hodnoty, např. při nastavování cooldownu pro /home
  • většinou necháváme prázdné
Výsledek může vypadat takto:
Spoiler: zobrazit
Obrázek


Přidal jsem ještě skupině Admin práva na /gamemode a když se teď podíváme na obsah tabulky tak uvidíme toto:
Spoiler: zobrazit
Obrázek


To je asi tak vše k tabulce "permissions". Samozřejmě tam můžete mazat, upravovat atd....

Tabulka permissions_entity
- v configu doporučuji nastavit:

Kód: Vybrat vše

  createUserRecords: false

  • databáze bude přehlednější
- tento table slouží k nastavení prefixu, sufixu a default skupiny

Podobně jako nahoře zde popíšu k čemu jaká kolonka slouží:
- "name" - jméno skupiny/hráče
- "type" - jako minule - jednička pro hráče, nula pro skupinu
- "prefix" - co má mít napsané před jménem
- "sufix" - co má mít za jménem
- "default" - nastavujeme hodnotu 0 nebo 1
  • pro skupinu kterou má dostat každý hráč při registraci napíšeme jedničku

Tabulka permissions_inheritance
- zde nastavujeme, kdo má patřit do jaké skupiny

- "child" - jméno hráče
- "parent" - jméno skupiny, kterou cheme hráči přidělit
- "type" - pro základy postačí hodnota 1 (o tomto se více rozepíšu v dalším návodu)
- "world" - jako obvykle - pro který svět má skupina platit
  • necháme prázdné pokud to má být globálně


To je k základům vše. Přeji příjemnou zábavu
Samozřejmě zde můžete psát vaše dotazy.


Je velká šance, že jsem něco zapomněl/přehlídl, takže mě můžete opravit

PS. : brzy zde ještě připíšu vychytávky pro pokročilé, které vám usnadní život

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 12:02
od Arcas
Je nějaká možnost jak již nastavené permissions přehodit do MySQL?

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 12:10
od Qentus
Jestli bude zájem, tak mohu sepsat návod na migraci soubor->MySQL zároveň s triky a tipy pro pokročilé.

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 12:48
od zdenda204
Když ty pexy mám takto v DB tak stále ve hře fungují přikazy jako /pex user zdenda204 group add vip ?

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 12:54
od Qentus
Samozřejmě

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 12:54
od Welton123
Jo, super navod ale chtelo by to to na tu migraci ;)

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 12:56
od Qentus
OK, takže když už jste 2 co to chtějí tak večer sepíšu i návod na migraci pokud vše půjde podle plánu (mám ještě práci na svém webu)

Re: PEX (MySQL) - Základy

Napsal: 09 črc 2012, 14:02
od Arcas
Udělej ju prosím ještě dnes, budu pracovat na úpravách serveru a tak bych to rád hnedka sfoukl.

Re: PEX via MySQL - Základy (1.díl)

Napsal: 31 říj 2012, 15:40
od pe89dro
skusal som to podla tvojho navodu neako som to rozbehol lenze ked som sa chcel napojit na server ta mami napisalo chybu a na dynmape ma ukazalo ako pripojeneho teda aj na servery, nastavit som chcel na seba essentials.gamemode
a robil som to podla navodu nevie niekto poradit ako co stym?

port 27087

Re: PEX via MySQL - Základy (1.díl)

Napsal: 31 říj 2012, 18:35
od nejento
Založ topic a dej server.log.