Your ideas are doable. The PHP manual has a good section covering sessions to cover your first bullet.
www.php.net/session
Bullet b is a combination of HTML for browsing/selecting files for upload and then managing those files once they're on your server. If you look at the sample code provided at the following link, you should have a good grasp of the basics:
www.php.net/features.file-upload
Bullets c and d are somewhat dependent on what you're doing to control access. If you're using a backend database where you've assigned some sort of "user priviliges" scale (1 is a superuser, 2 is a power user, 3 is a subscriber, 4 is anonymous, etc.), then it should just be a matter of a user logging in to the site, a check is done of his privileges during the login process, a session is started and his username and privilege level is registered, and he can surf to the "admin" pages where he can add/modify/delete users IF his username/priviliges are equal to or greater than what is needed to be at those pages.
If you get a good grasp on sessions, bullets c and d will be quite obtainable.
Here is a good online article re: PHP & MySQL:
http://www.sitepoint.com/article/driven-website-php-amp-mysql