‘is_author()’ logic in widget for author only

is_author() is only for Archive pages.
Quote from the Codex:

is_author() checks if an Author archive page is being displayed

So viewing a single Post or Page isn’t going to get a TRUE from is_author().

I think you’ll want something more like this:

global $post,$current_user; // get the global variables to check
get_currentuserinfo();  // get current user info
// Now check if the author of this post is the same as the current logged in user
if ($post->post_author == $current_user->ID) {
   // do code here
}

I hope this helps. 🙂

EDIT #1:
Shortened code version.

// Check if the author of this post is the same as the current logged in user
if ( $post->post_author == get_current_user_id() ) {
   // do code here
}