<p>I'm new to CodeIgniter, and I need some help. I'd like to implement the following:</p>
<ul>
<li><p>View a user's profile via:
http://localhost/profile/johndoe</p>
</li>
<li><p>Administrate a user's profile via:
http://localhost/admin/profile/johndoe</p>
</li>
<li><p>Be able to accomplish even further processing via:
http://localhost/admin/profile/create
...and...
http://localhost/admin/profile/edit/johndoe</p>
</li>
</ul>
<p>I've already created the admin object and secured it. Do I have to create a profile function under admin, and work with the URI to process accordingly? Is there a better way?</p>

This is not such a good idea.
If you want to implement those URLs, you need two controllers:
Profile, with the function
```
index
```
Admin, with the function
```
profile
```
In Admin, the
```
profile
```
function has to read the first argument (create/edit/[userid]) and then do something accordingly. (You also must make sure that no user can call himself "create" or "edit".)
I would instead use only one controller with the functions
```
show
```
,
```
edit
```
, and
```
create
```
(or
```
add
```
). Much easier. Then you would get these URLs:
http://localhost/profile/show/johndoe
http://localhost/profile/edit/johndoe
http://localhost/profile/create/johndoe