value => 'webcal_can_view', Permission::EVENT_EDIT->value => 'webcal_can_edit', Permission::DAY_VIEW->value => 'webcal_can_view', Permission::WEEK_VIEW->value => 'webcal_can_view', Permission::MONTH_VIEW->value => 'webcal_can_view', Permission::YEAR_VIEW->value => 'webcal_can_view', Permission::ADMIN_HOME->value => 'webcal_can_manage_settings', Permission::REPORT->value => 'webcal_can_view_reports', Permission::VIEW->value => 'webcal_can_view', Permission::VIEW_MANAGEMENT->value => 'webcal_can_manage_views', Permission::CATEGORY_MANAGEMENT->value => 'webcal_can_manage_categories', Permission::LAYERS->value => 'webcal_can_view', Permission::SEARCH->value => 'webcal_can_view', Permission::ADVANCED_SEARCH->value => 'webcal_can_view', Permission::ACTIVITY_LOG->value => 'webcal_can_manage_settings', Permission::USER_MANAGEMENT->value => 'webcal_can_manage_users', Permission::ACCOUNT_INFO->value => 'webcal_can_view', Permission::ACCESS_MANAGEMENT->value => 'webcal_can_manage_security', Permission::PREFERENCES->value => 'webcal_can_view', Permission::SYSTEM_SETTINGS->value => 'webcal_can_manage_settings', Permission::IMPORT->value => 'webcal_can_import', Permission::EXPORT->value => 'webcal_can_export', Permission::PUBLISH->value => 'webcal_can_manage_settings', Permission::ASSISTANTS->value => 'webcal_can_view', Permission::TRAILER->value => 'webcal_can_view', Permission::HELP->value => 'webcal_can_view', Permission::ANOTHER_CALENDAR->value => 'webcal_can_view', Permission::SECURITY_AUDIT->value => 'webcal_can_manage_security', ]; $bitmask = array_fill( 0, 64, 'N' ); foreach ( $mapping as $index => $capability ) { if ( user_can( $wp_user, $capability ) ) { $bitmask[ $index ] = 'Y'; } } // Also check for 'manage_options' as a fallback for admins if ( user_can( $wp_user, 'manage_options' ) ) { for ( $i = 0; $i < 28; $i++ ) { $bitmask[ $i ] = 'Y'; } } return implode( '', $bitmask ); } }