Almost every tutorial advises a code like this for a permission modifier.
modifier isAdmin() {
if(msg.sender != owner) {
throw;
}
_
}
But wouldn't it be simpler to use it without throw statement (AFAIU it would also save user's gas):
modifier isAdmin() {
if(msg.sender == owner) _
}
As it is described by ConsenSys in Ethereum Contract Security Techniques and Tips but only for these modifiers:
modifier stopInEmergency { if (!stopped) _ }
modifier onlyInEmergency { if (stopped) _ }