Index: /trunk/src/grails-app/conf/BootStrap.groovy
===================================================================
--- /trunk/src/grails-app/conf/BootStrap.groovy	(revision 39)
+++ /trunk/src/grails-app/conf/BootStrap.groovy	(revision 40)
@@ -44,12 +44,28 @@
         //Person
         new Person(personGroup:PersonGroup.get(1),
-                   firstName:"Craig",
-                   lastName:"SuperTech").save()
+            firstName:"Admin",
+            lastName:"Powers",
+            userId:"admin",
+            password:"pass").save()
+        new Person(personGroup:PersonGroup.get(1),
+            firstName:"User",
+            lastName:"Tester",
+            userId:"user",
+            password:"pass").save()
+        new Person(personGroup:PersonGroup.get(1),
+            firstName:"Craig",
+            lastName:"SuperTech",
+            userId:"craig",
+            password:"pass").save()
         new Person(personGroup:PersonGroup.get(2),
-                   firstName:"Joe",
-                   lastName:"Samples").save()
+            firstName:"Joe",
+            lastName:"Samples",
+            userId:"joe",
+            password:"pass").save()
         new Person(personGroup:PersonGroup.get(1),
-                   firstName:"Production",
-                   lastName:"Mann").save()
+            firstName:"Production",
+            lastName:"Mann",
+            userId:"Mann",
+            password:"pass").save()
                 
         //TaskGroup
@@ -64,5 +80,5 @@
         //Task
         new Task(taskGroup:TaskGroup.findByName("Engineering"),
-                 person:Person.get(1),
+                 person:Person.get(3),
                  name:"Check specific level sensor",
                  description:"Has been noted as problematic, try recallibrating",
@@ -70,7 +86,13 @@
                  targetDate: new Date() ).save()
         new Task(taskGroup:TaskGroup.findByName("Production"),
-                 person:Person.get(2),
+                 person:Person.get(5),
                  name:"Production Report",
                  description:"Production report for specific production run or shift",
+                 scheduledDate: new Date(),
+                 targetDate: new Date() ).save()
+        new Task(taskGroup:TaskGroup.findByName("NewProject(s)"),
+                 person:Person.get(1),
+                 name:"Make killer CMMS app",
+                 description:"Use Grails and get a move on!",
                  scheduledDate: new Date(),
                  targetDate: new Date() ).save()
Index: /trunk/src/grails-app/controllers/BaseController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/BaseController.groovy	(revision 40)
+++ /trunk/src/grails-app/controllers/BaseController.groovy	(revision 40)
@@ -0,0 +1,12 @@
+abstract class BaseController {
+    def auth() {
+        if(!session.userId) {
+            def originalRequestParams = [controller:controllerName,action:actionName]
+            originalRequestParams.putAll(params)
+            session.originalRequestParams = originalRequestParams
+            redirect(controller:'person',action:'login')
+            return false
+        }
+    }
+}
+
Index: /trunk/src/grails-app/controllers/EntryController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/EntryController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/EntryController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class EntryController {
-    
+class EntryController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/EntryTypeController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/EntryTypeController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/EntryTypeController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class EntryTypeController {
-    
+class EntryTypeController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/ModificationController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/ModificationController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/ModificationController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class ModificationController {
-    
+class ModificationController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/ModificationTypeController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/ModificationTypeController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/ModificationTypeController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class ModificationTypeController {
-    
+class ModificationTypeController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/PersonController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/PersonController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/PersonController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class PersonController {
-    
+class PersonController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth,except:['login', 'logout']]
+
     def index = { redirect(action:list,params:params) }
 
@@ -80,3 +82,34 @@
         }
     }
+
+    def login = {
+        if (request.method == "GET") {
+            session.userId = null
+            def person = new Person()
+        }
+        else {
+            def person = Person.findByUserIdAndPassword(params.userId,params.password)
+            if (person) {
+                    session.userId = person.userId
+                    def redirectParams = 
+                        session.originalRequestParams ?
+                        session.originalRequestParams : [controller:'task']
+                    redirect(redirectParams)
+            }
+            else {
+         flash['message'] = 'Please enter a valid user ID and password'
+            }
+        }
+    }
+
+    def logout = {
+        session.userId = null
+        flash['message'] = 'Successfully logged out'
+        redirect(controller:'person', action:'login')
+    }
+
+    def admin = {
+        render(view:'admin')
+    }
+
 }
Index: /trunk/src/grails-app/controllers/PersonGroupController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/PersonGroupController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/PersonGroupController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class PersonGroupController {
-    
+class PersonGroupController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/PersonGroupTypeController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/PersonGroupTypeController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/PersonGroupTypeController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class PersonGroupTypeController {
-    
+class PersonGroupTypeController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/TaskController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/TaskController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/TaskController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class TaskController {
-    
+class TaskController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/controllers/TaskGroupController.groovy
===================================================================
--- /trunk/src/grails-app/controllers/TaskGroupController.groovy	(revision 39)
+++ /trunk/src/grails-app/controllers/TaskGroupController.groovy	(revision 40)
@@ -1,4 +1,6 @@
-class TaskGroupController {
-    
+class TaskGroupController extends BaseController {
+
+    def beforeInterceptor = [action:this.&auth]
+
     def index = { redirect(action:list,params:params) }
 
Index: /trunk/src/grails-app/domain/Person.groovy
===================================================================
--- /trunk/src/grails-app/domain/Person.groovy	(revision 39)
+++ /trunk/src/grails-app/domain/Person.groovy	(revision 40)
@@ -2,4 +2,6 @@
     String firstName
     String lastName
+    String userId
+    String password
     Integer employeeID
     boolean isActive = true
@@ -17,4 +19,6 @@
         firstName(maxSize:50,blank:false)
         lastName(maxSize:50,blank:false)
+        userId(maxSize:8,unique:true)
+        password(maxSize:8)
         employeeID(blank:true, nullable:true)
     }
Index: /trunk/src/grails-app/views/_adminmenubar.gsp
===================================================================
--- /trunk/src/grails-app/views/_adminmenubar.gsp	(revision 40)
+++ /trunk/src/grails-app/views/_adminmenubar.gsp	(revision 40)
@@ -0,0 +1,17 @@
+<g:if test="${session.userId}">
+    <span class="appControlButton">
+        <g:link controller="task" action="list">
+                Task
+        </g:link>
+    </span>
+    <span class="appControlButton">
+        <g:link controller="person" action="admin">
+                Admin
+        </g:link>
+    </span>
+    <span class="appControlButton">
+        <g:link controller="person" action="logout">
+               Log out
+        </g:link>
+    </span>
+</g:if>
Index: /trunk/src/grails-app/views/layouts/main.gsp
===================================================================
--- /trunk/src/grails-app/views/layouts/main.gsp	(revision 39)
+++ /trunk/src/grails-app/views/layouts/main.gsp	(revision 40)
@@ -15,6 +15,12 @@
         <!-- <div class="logo" style="text-align: center; width: 980px; height: 220px">
           <img src="${createLinkTo(dir:'images',file:'logo.png')}"
-        alt="gnuMims" /></div> -->
+        alt="gnuMims" />
+        <g:render template="/adminmenubar" />
+
+        </div> -->
         <div id="Header">
+        </div>
+        <div class="appControl">
+            <g:render template="/adminmenubar" />
         </div>
         <g:layoutBody />
Index: /trunk/src/grails-app/views/person/admin.gsp
===================================================================
--- /trunk/src/grails-app/views/person/admin.gsp	(revision 40)
+++ /trunk/src/grails-app/views/person/admin.gsp	(revision 40)
@@ -0,0 +1,28 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<meta name="layout" content="main" />
+<title>Admin</title>
+</head>
+    <body>
+        <div class="nav">
+            <span class="menuButton">
+                <a class="home" href="${createLinkTo(dir:'')}">Home</a>
+            </span>
+        </div>
+        <div class="body">
+            <h1 style="margin-left:20px;">Welcome to Admin</h1>
+            <p style="margin-left:20px;width:80%">
+            Home
+            </p>
+            <div class="dialog" style="margin-left:20px;width:60%;">
+                <ul>
+                <g:each var="c" in="${grailsApplication.controllerClasses}">
+                        <li class="controller"><g:link
+    controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
+                </g:each>
+                </ul>
+            </div>
+        </div>
+    </body>
+</html>
Index: /trunk/src/grails-app/views/person/create.gsp
===================================================================
--- /trunk/src/grails-app/views/person/create.gsp	(revision 39)
+++ /trunk/src/grails-app/views/person/create.gsp	(revision 40)
@@ -47,4 +47,22 @@
                             <tr class="prop">
                                 <td valign="top" class="name">
+                                    <label for="userId">User Id:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:personInstance,field:'userId','errors')}">
+                                    <input type="text" maxlength="8" id="userId" name="userId" value="${fieldValue(bean:personInstance,field:'userId')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="password">Password:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:personInstance,field:'password','errors')}">
+                                    <input type="text" maxlength="8" id="password" name="password" value="${fieldValue(bean:personInstance,field:'password')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
                                     <label for="employeeID">Employee ID:</label>
                                 </td>
Index: /trunk/src/grails-app/views/person/edit.gsp
===================================================================
--- /trunk/src/grails-app/views/person/edit.gsp	(revision 39)
+++ /trunk/src/grails-app/views/person/edit.gsp	(revision 40)
@@ -44,4 +44,22 @@
                                 <td valign="top" class="value ${hasErrors(bean:personInstance,field:'lastName','errors')}">
                                     <input type="text" maxlength="50" id="lastName" name="lastName" value="${fieldValue(bean:personInstance,field:'lastName')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="userId">User Id:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:personInstance,field:'userId','errors')}">
+                                    <input type="text" maxlength="8" id="userId" name="userId" value="${fieldValue(bean:personInstance,field:'userId')}"/>
+                                </td>
+                            </tr> 
+                        
+                            <tr class="prop">
+                                <td valign="top" class="name">
+                                    <label for="password">Password:</label>
+                                </td>
+                                <td valign="top" class="value ${hasErrors(bean:personInstance,field:'password','errors')}">
+                                    <input type="text" maxlength="8" id="password" name="password" value="${fieldValue(bean:personInstance,field:'password')}"/>
                                 </td>
                             </tr> 
Index: /trunk/src/grails-app/views/person/list.gsp
===================================================================
--- /trunk/src/grails-app/views/person/list.gsp	(revision 39)
+++ /trunk/src/grails-app/views/person/list.gsp	(revision 40)
@@ -28,7 +28,9 @@
                    	        <g:sortableColumn property="lastName" title="Last Name" />
                         
+                   	        <g:sortableColumn property="userId" title="User Id" />
+                        
+                   	        <g:sortableColumn property="password" title="Password" />
+                        
                    	        <g:sortableColumn property="employeeID" title="Employee ID" />
-                        
-                   	        <g:sortableColumn property="isActive" title="Is Active" />
                         
                         </tr>
@@ -44,7 +46,9 @@
                             <td>${fieldValue(bean:personInstance, field:'lastName')}</td>
                         
+                            <td>${fieldValue(bean:personInstance, field:'userId')}</td>
+                        
+                            <td>${fieldValue(bean:personInstance, field:'password')}</td>
+                        
                             <td>${fieldValue(bean:personInstance, field:'employeeID')}</td>
-                        
-                            <td>${fieldValue(bean:personInstance, field:'isActive')}</td>
                         
                         </tr>
Index: /trunk/src/grails-app/views/person/login.gsp
===================================================================
--- /trunk/src/grails-app/views/person/login.gsp	(revision 40)
+++ /trunk/src/grails-app/views/person/login.gsp	(revision 40)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html;
+      charset=UTF-8"/>
+<meta name="layout" content="main" />
+<title>Log in</title>
+</head>
+    <body>
+        <div class="nav">
+            <span class="menuButton">
+<!--                 <a class="home" href="${createLinkTo(dir:'')}">Home</a> -->
+            </span>
+        </div>
+        <div class="body">
+            <h1>Please log in</h1>
+            <g:if test="${flash.message}">
+                <div class="message">${flash.message}</div>
+            </g:if>
+            <g:hasErrors bean="${person}">
+                <div class="errors">
+                    <g:renderErrors bean="${person}" as="list" />
+                </div>
+            </g:hasErrors>
+            <g:form controller="person" method="post" >
+                <div class="dialog">
+                <table>
+                    <tr class='prop'>
+                        <td valign='top' class='name'>
+                            <label for='userId'>User ID:</label>
+                        </td>
+                        <td valign='top' class='value '>
+                            <input type="text" maxlength='8'
+                                    name='userId'
+                                    value='${person?.userId}'>
+                            </input>
+                        </td>
+                    </tr>
+                    <tr class='prop'>
+                        <td valign='top' class='name'>
+                          <label for='password'>Password:</label>
+                        </td>
+                        <td valign='top' class='value '>
+                            <input type="password" maxlength='8'
+                                   name='password'
+                                   value='${person?.password}'>
+                           </input>
+                        </td>
+                   </tr>
+                </table>
+                </div>
+               <div class="buttons">
+               <span class="button">
+                  <g:actionSubmit value="Log in" />
+               </span>
+               </div>
+            </g:form>
+        </div>
+    </body>
+</html>
Index: /trunk/src/grails-app/views/person/show.gsp
===================================================================
--- /trunk/src/grails-app/views/person/show.gsp	(revision 39)
+++ /trunk/src/grails-app/views/person/show.gsp	(revision 40)
@@ -45,4 +45,18 @@
                     
                         <tr class="prop">
+                            <td valign="top" class="name">User Id:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:personInstance, field:'userId')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
+                            <td valign="top" class="name">Password:</td>
+                            
+                            <td valign="top" class="value">${fieldValue(bean:personInstance, field:'password')}</td>
+                            
+                        </tr>
+                    
+                        <tr class="prop">
                             <td valign="top" class="name">Employee ID:</td>
                             
@@ -54,5 +68,11 @@
                             <td valign="top" class="name">Entries:</td>
                             
-                            <td valign="top" class="value">${fieldValue(bean:personInstance, field:'entries')}</td>
+                            <td  valign="top" style="text-align:left;" class="value">
+                                <ul>
+                                <g:each var="e" in="${personInstance.entries}">
+                                    <li><g:link controller="entry" action="show" id="${e.id}">${e?.encodeAsHTML()}</g:link></li>
+                                </g:each>
+                                </ul>
+                            </td>
                             
                         </tr>
Index: /trunk/src/web-app/css/public.css
===================================================================
--- /trunk/src/web-app/css/public.css	(revision 39)
+++ /trunk/src/web-app/css/public.css	(revision 40)
@@ -37,5 +37,5 @@
   background: transparent url("../images/logo.png") no-repeat scroll center;
   width: 980px;
-  height: 220px;
+  height: 200px;
 }
 
@@ -95,4 +95,14 @@
 }
 
+.appcontrol {
+    text-align: right;
+    padding: 5px 160px 5px 5px
+}
+
+.appcontrolButton {
+    font-size: 10px;
+    padding: 5px 5px;
+}
+
 .nav a{
     background: url("../images/linkPanel.png") no-repeat top;
Index: /trunk/src/web-app/index.gsp
===================================================================
--- /trunk/src/web-app/index.gsp	(revision 39)
+++ /trunk/src/web-app/index.gsp	(revision 40)
@@ -1,19 +1,1 @@
-<html>
-    <head>
-        <title>Welcome to gnuMims</title>
-		<meta name="layout" content="main" />
-    </head>
-    <body>
-        <h1 style="margin-left:20px;">Welcome to gnuMims</h1>
-        <p style="margin-left:20px;width:80%">
-	Home
-	</p>
-        <div class="dialog" style="margin-left:20px;width:60%;">
-            <ul>
-              <g:each var="c" in="${grailsApplication.controllerClasses}">
-                    <li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
-              </g:each>
-            </ul>
-        </div>
-    </body>
-</html>
+<%response.sendRedirect(request.getContextPath()+'/task/list')%>
