Entry validation not working when Publish live changes permission is not checked when a user with no permission to publish is submitting a blank entry, the entry is saved anyway without any errors.

Here is the permissions set to the user group:



I have few required field as showed below:



And very sadly, the entry is saved as draft, entitled "New Entry":



This can't be a feature, is it?
As carlcs said, this is already working as expected. Craft only enforces content validation rules for enabled entries (not including drafts), and most people prefer that behavior.

If you want to change that behavior, you can write a plugin that provides its own entry validation logic, by latching onto the entries.onBeforeSaveEntry event. Just put this in your plugin’s primary class:

public function init()
{
    craft()-&gt;on('entries.beforeSaveEntry', function(Event, $event) {
        /** @var EntryModel $entry */
        $entry = $event-&gt;params['entry'];

        // If the entry is disabled, the content won't be validated automatically
        if (!$entry-&gt;enabled)
        {
            $validates = craft()-&gt;content-&gt;validateContent($entry);

            if (!$validates)
            {
                // Add the content validation errors
                $entry-&gt;addErrors($entry-&gt;getContent()-&gt;getErrors());

                // Prevent the entry from getting saved
                $event-&gt;performAction = false;
            }
        }
    });
}