This paper is concerned with the computational aspects of approval voting and some of its variants, with a particular focus on the complexity of problems that model various ways of tampering with the outcome of an election: manipulation, control, and bribery. For example, in control settings, the election's chair seeks to alter the outcome of an election via control actions such as adding/deleting/partitioning either candidates or voters. In particular, sincere-strategy preference-based approval voting (SP-AV), a variant of approval voting proposed by Brams and Sanver [BS06], is computationally resistant to 19 of the 22 common types of control. Thus, among those natural voting systems for which winner determination is easy, SP-AV is the system currently known to display the broadest resistance to control. We also present the known complexity results for various types of bribery. Finally, we study local search heuristics for minimax approval voting, a variant of approval voting proposed by Brams, Kilgour, and Sanver [BKS04] (see also [BKS07a,BKS07b]) for the purpose of electing a committee of fixed size.