docs: function deleteSecure(user, options) {
      // jscs:disable
      // jshint -W040
      const self = this;
      // jshint +W040
      // jscs:enable
      const Model = self.constructor;
      const shield = Model.shield;
      const action = 'delete';
      const rules = shield.getApplicableRules(action);
      const primaryKey = Model.idAttribute;
      const query = {};
      const tmpModel = Model.forge(query);
      query[primaryKey] = self.get(primaryKey);
      return tmpModel.read(user)
          .then(function validateUpdatePrivs(originalModel) {
              // TODO: investigate what happens if fetch returns nothing (err?)
              return applyRules(rules, originalModel, user);
          }).then(function executeUpdate() {
              return shield._destroy.call(self, options);
          });
  }