<?php

use WoWPress\Models\User;

function set_roles()
{
    remove_role('editor');
    remove_role('contributor');
    remove_role('author');
    remove_role('subscriber');

    $admin = get_role('administrator');

    add_role('gildenmeister', __('Gildenmeister'), ['read' => true]);
    $gm = get_role('gildenmeister');

    add_role('offizier', __('Offizier'), ['read' => true]);
    $offi = get_role('offizier');

    add_role('raidlead', __('Raidlead'), ['read' => true]);
    $rl = get_role('raidlead');

    add_role('raider', __('Raider'), ['read' => true]);
    $raider = get_role('raider');

    add_role('novize', __('Novize'), ['read' => true]);
    $novize = get_role('novize');

    add_role('f_f', __('F&F'), ['read' => true]);
    $ff = get_role('f_f');

    add_role('nobody', __('Niemand'));

    update_option('default_role', 'nobody');

    $admin->add_cap('wowpress_edit_site', true);
    $admin->add_cap('wowpress_edit_raids', true);
    $admin->add_cap('wowpress_edit_characters', true);
    $admin->add_cap('wowpress_view_raids');
    $admin->add_cap('wowpress_view_teamspeak');
    $admin->add_cap('wowpress_view_birthdays');
    $admin->add_cap('wowpress_view_complaints');
    $admin->add_cap('wowpress_edit_complaints');



    foreach (get_role('administrator')->capabilities as $cap => $status) {
        $gm->add_cap($cap, $status);
        $offi->add_cap($cap, $status);
    }

    $rl->add_cap('wowpress_edit_raids', true);
    $rl->add_cap('wowpress_edit_characters', true);

    $rl->add_cap('wowpress_view_raids');
    $raider->add_cap('wowpress_view_raids');
    $novize->add_cap('wowpress_view_raids');
    $ff->add_cap('wowpress_view_raids');

    $rl->add_cap('wowpress_view_teamspeak');
    $raider->add_cap('wowpress_view_teamspeak');
    $novize->add_cap('wowpress_view_teamspeak');
    $ff->add_cap('wowpress_view_teamspeak');

    $rl->add_cap('wowpress_view_birthdays');
    $raider->add_cap('wowpress_view_birthdays');
    $novize->add_cap('wowpress_view_birthdays');
    $ff->add_cap('wowpress_view_birthdays');


    $rl->add_cap('wowpress_view_complaints');
    $raider->add_cap('wowpress_view_complaints');
    $novize->add_cap('wowpress_view_complaints');
    $ff->add_cap('wowpress_view_complaints');

}


function isAllowed($capability)
{
    if (!current_user_can($capability)) :
        include plugin_dir_path(__FILE__) . '../pages/404.php';
        die;
    endif;
}

function checkNonce($nonce){
  return isset($_POST[$nonce.'_nonce']) && wp_verify_nonce($_POST[$nonce.'_nonce'], $nonce);
}


function setGlobalUser(){
    global $user;
    $user = get_current_user_id();
    if ($user) {
        $user = User::find($user);
    } else {
        $user = new User();
        $user->ID  = 0;
        $user->login = "Gast";
    }
}

add_action( 'show_user_profile', 'wowpress_extra_user_profile_fields' );
add_action( 'edit_user_profile', 'wowpress_extra_user_profile_fields' );
function wowpress_extra_user_profile_fields( $user ) {
?>
  <h3><?php _e("Nette Zusatzinfos", "blank"); ?></h3>
  <table class="form-table">
    <tr>
      <th><label for="birthday"><?php _e("Geburtstag"); ?></label></th>
      <td>
        <input type="date" name="birthday" id="birthday" class="regular-text" 
            value="<?php echo esc_attr( get_the_author_meta( 'birthday', $user->ID ) ); ?>" /><br />
        <span class="description"><?php _e("Bitte gib doch dein Geburtsdatum ein :)"); ?></span>
    </td>
    </tr>
    <tr>
      <th><label for="btag"><?php _e("Battle-Tag"); ?></label></th>
      <td>
        <input type="text" name="btag" id="btag" class="regular-text" 
            value="<?php echo esc_attr( get_the_author_meta( 'btag', $user->ID ) ); ?>" /><br />
        <span class="description"><?php _e("Nur wenn du willst :D"); ?></span>
    </td>
    </tr>
  </table>
<?php
}

add_action( 'personal_options_update', 'wowpress_save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'wowpress_save_extra_user_profile_fields' );
function wowpress_save_extra_user_profile_fields( $user_id ) {
  $saved = false;
  if ( current_user_can( 'edit_user', $user_id ) ) {
    update_user_meta( $user_id, 'birthday', $_POST['birthday'] );
    update_user_meta( $user_id, 'btag', $_POST['btag'] );
    $saved = true;
  }
  return true;
}