Den Usern fehlen die User_Level

  • Hello Leute,

    ich hab vor kurzem meine *users* und *users_meta* tables von einem alten Projekt in ein neues System portiert. Im alten System (WP2.7) hatten wir den Role Manager im Einsatz um eindeutigere Rollen-Namen und Berechtigungen zu vergeben.

    Jetzt, im neuen System, wollten wir auf einen Role-Manager verzichten und alles über die User-Level machen. Leider mussten wir feststellen, dass es bei vielen Usern gar kein User_Level gegeben hat. Kann es sein, dass der Role Manager die User_Level gelöscht hat? Ich würde jetzt eine Möglichkeit (per PhpMyAdmin/MySQL zB) suchen, an meine User mit der User_Role "Subscriber" das User_Level 0 anzuhängen.. Weiß jemand eine Möglichkeit?

    Nachsatz: Ich würde auch über wp_roles gehen, nur ist das leider im Gegensatz zu user_level nicht global verfügbar, obwohl es lt. Core eigentlich so sein müsste.. Ich wäre auch hier für jede Idee offen.

    Vielen Dank im Voraus!

    Edit: Hintergrund sind Berechtigungen. Falls es jemand anderem hilft: Man kann Rollen sehr einfach um Berechtigungen erweitern (i. d. functions.php)

    Code
    [COLOR=Gray]// BERECHTIGUNGEN für Editor/Redakteur[/COLOR]
        [COLOR=Red]$[/COLOR][COLOR=DarkOrchid]role[/COLOR] [COLOR=SeaGreen]=[/COLOR] [COLOR=DarkOrange]get_role[/COLOR]('[COLOR=RoyalBlue]editor[/COLOR]');
        [COLOR=Red]if[/COLOR] ([COLOR=Red]$[/COLOR][COLOR=DarkOrchid]role[/COLOR] [COLOR=SeaGreen]!==[/COLOR] [COLOR=DarkSlateGray]NULL[/COLOR]) [COLOR=Red]{[/COLOR]
           [COLOR=Red]$[/COLOR][COLOR=DarkOrchid]role[/COLOR][COLOR=SeaGreen]->[/COLOR][COLOR=DarkOrange]add_cap[/COLOR]('[COLOR=RoyalBlue]edit_users[/COLOR]');
           [COLOR=Red]$[/COLOR][COLOR=DarkOrchid]role[/COLOR][COLOR=SeaGreen]->[/COLOR][COLOR=DarkOrange]add_cap[/COLOR]('[COLOR=RoyalBlue]create_users[/COLOR]');
           [COLOR=Red]$[/COLOR][COLOR=DarkOrchid]role[/COLOR][COLOR=SeaGreen]->[/COLOR][COLOR=DarkOrange]add_cap[/COLOR]('[COLOR=RoyalBlue]delete_users[/COLOR]');
        [COLOR=Red]}[/COLOR]

    Firebug laden! Foreregeln bitte lesen. FAQ. Bitte keine Anfragen per PN.

    Einmal editiert, zuletzt von kaiser (2. März 2010 um 13:10)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich glaube, dass user_level schon lange deprecated, also veraltet ist. Vielleicht findest du im Codex dazu nähere Hinweise?

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Danke für die Antwort. http://core.trac.wordpress.org/browser/trunk/…apabilities.php: line 721... Im Codex steht natürlich nichts(!) davon.

    Vor allem, dass die DB nach einem Update (falls die veraltet sind) nicht aufgeräumt wird...

    Wüsstest Du wie man bei einem "current_user" nach der User-Rolle fragt? Also so was wie: if(user_has_role('administrator')) { echo "ist ein Admin"; } else { echo "ist ein was-weiß-ich"; }

    Firebug laden! Foreregeln bitte lesen. FAQ. Bitte keine Anfragen per PN.

    Einmal editiert, zuletzt von kaiser (2. März 2010 um 16:46)

  • Doch nicht ganz. Hier kommt der richtige Code:

  • Ist zwar schon ein alter Thread, aber der Vollständigkeit halber: current_user_can('administrator'), wie von Rega schon angesprochen ist die derzeit gültige Abfrage.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!