Doesnt seem to complete in that if someone was to copy this where is the cleanUp function?
Firstly why do you require to have to use global seen in is_admin? Why not pass it to the function?
Secondly why are you storing the password in the session? Even though its hashed (Not encrypted) if someone knew what was happening behind the scenes and got hold of it they could eventually get the password, md5 and sha1 arent as secure as you may think (Do a search as to why).
Lastly "@" why is it needed on the if statement? why not just code the last line like this
if (!is_admin()) exit;
Shorter and more to the point, as well as in my opinion easier to understand.