Changeset 91


Ignore:
Timestamp:
Mar 25, 2009, 4:26:43 AM (13 years ago)
Author:
gav
Message:

More detailing on Task and Entry. Added another authorisation ROLE_Manager and view to go with it. Work on PersonController? delete action.

Location:
trunk/src/grails-app
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/grails-app/conf/BootStrap.groovy

    r84 r91  
    6767        BootStrapSaveAndTest(authInstance)
    6868
    69         authInstance = new Authority(description:"Application User, all application users need this base role.",
     69        authInstance = new Authority(description:"Business manager, grants full management access.",
     70                                        authority:"ROLE_Manager")
     71        BootStrapSaveAndTest(authInstance)
     72
     73        authInstance = new Authority(description:"Application User, all application users need this base role to allow login.",
    7074                                        authority:"ROLE_AppUser")
    7175        BootStrapSaveAndTest(authInstance)
     
    8589        personInstance.addToAuthorities(Authority.get(1))
    8690        personInstance.addToAuthorities(Authority.get(2))
     91        personInstance.addToAuthorities(Authority.get(3))
    8792        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
    8893
    89         personInstance = new Person(loginName:"admin2",
    90                                     firstName:"Admin2",
    91                                     lastName:"Powers2",
    92                                     pass:passClearText,
    93                                     password:passwordEncoded,
    94                                     email:"admin2@example.com")
    95         BootStrapSaveAndTest(personInstance)
    96         personInstance.addToAuthorities(Authority.get(1))
     94        personInstance = new Person(loginName:"manager",
     95                                    firstName:"Meca",
     96                                    lastName:"Manager",
     97                                    pass:passClearText,
     98                                    password:passwordEncoded,
     99                                    email:"manager@example.com")
     100        BootStrapSaveAndTest(personInstance)
    97101        personInstance.addToAuthorities(Authority.get(2))
     102        personInstance.addToAuthorities(Authority.get(3))
    98103        personInstance.addToPersonGroups(PersonGroup.findByName("gnuMims"))
    99104
     
    105110                                    email:"user@example.com")
    106111        BootStrapSaveAndTest(personInstance)
    107         personInstance.addToAuthorities(Authority.get(2))
     112        personInstance.addToAuthorities(Authority.get(3))
    108113        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
    109114
     
    115120                                    email:"user@example.com")
    116121        BootStrapSaveAndTest(personInstance)
    117         personInstance.addToAuthorities(Authority.get(2))
     122        personInstance.addToAuthorities(Authority.get(3))
    118123        personInstance.addToPersonGroups(PersonGroup.findByName("Electrical"))
    119124
     
    125130                                    email:"user@example.com")
    126131        BootStrapSaveAndTest(personInstance)
    127         personInstance.addToAuthorities(Authority.get(2))
     132        personInstance.addToAuthorities(Authority.get(3))
    128133        personInstance.addToPersonGroups(PersonGroup.findByName("Mechanical"))
    129134
     
    135140                                    email:"user@example.com")
    136141        BootStrapSaveAndTest(personInstance)
    137         personInstance.addToAuthorities(Authority.get(2))
     142        personInstance.addToAuthorities(Authority.get(3))
    138143        personInstance.addToPersonGroups(PersonGroup.findByName("Production"))
    139144
  • trunk/src/grails-app/controllers/AppCoreController.groovy

    r73 r91  
    4242    }
    4343
     44    @Secured(['ROLE_Manager'])   
     45    def manager = {
     46    }
    4447
    4548    @Secured(['ROLE_AppAdmin'])   
  • trunk/src/grails-app/controllers/PersonController.groovy

    r73 r91  
    11import org.codehaus.groovy.grails.plugins.springsecurity.Secured
    22
    3 @Secured(['ROLE_AppAdmin'])
     3@Secured(['ROLE_AppAdmin', 'ROLE_Manager'])
    44class PersonController {
    55
     
    5353                                //first, delete this person from Persons_Authorities table.
    5454                                Authority.findAll().each { it.removeFromPersons(person) }
    55                                 person.delete()
    56                                 flash.message = "Person $params.id deleted."
     55               
     56//                 try {
     57                    person.delete(flush:true)
     58                    flash.message = "Person $params.id deleted."
     59//                 }
     60//                 catch(Exception e) {
     61//                     flash.message = "Could not delete '$person.loginName' due to database constraints, but all authorities have been removed."
     62//                     redirect action: edit, id: person.id
     63//                 }
     64
    5765                        }
    5866                }
  • trunk/src/grails-app/domain/Task.groovy

    r69 r91  
    2323    static constraints = {
    2424        targetStartDate()
    25         description(blank:false,maxSize:50)
     25        description(blank:false,maxSize:75)
    2626        leadPerson()
    2727        taskPriority()
  • trunk/src/grails-app/views/_adminmenubar.gsp

    r73 r91  
    11<g:isLoggedIn>
     2    <g:ifAnyGranted role="ROLE_Manager">
     3        <span class="appControlButton">
     4            <g:link controller="appCore" action="manager">
     5                Manager
     6            </g:link>
     7        </span>
     8    </g:ifAnyGranted>
    29    <g:ifAnyGranted role="ROLE_AppAdmin">
    310        <span class="appControlButton">
  • trunk/src/grails-app/views/appCore/admin.gsp

    r84 r91  
    88        <div class="nav">
    99            <span class="menuButton"><a class="home" href="${createLinkTo(dir:'')}">Home</a></span>
    10             <span class="menuButton"><g:link controller="person" action="create">New Person</g:link></span>
    1110        </div>
    1211        <div class="body">
    13             <h1>Welcome to Admin</h1>
     12            <h1>Application Admin</h1>
    1413            <div class="errors">
    15                 "Warning these pages are for use by the application admin only and not for daily use." <br />
    16                 "They allow direct administration of the back-end data, cascade deletion and updates may occur."
     14                Warning!<br />
     15                The pages bellow this line are for use by the application admin only and NOT for daily use.<br />
     16                They allow direct administration of the back-end data, cascade deletion and updates may occur.<br />
     17                The manager authorisation and pages should be used for normal daily use.<br />
    1718            </div>
    1819            <br/>
  • trunk/src/grails-app/views/taskDetailed/create.gsp

    r85 r91  
    3232                                </td>
    3333                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'description','errors')}">
    34                                     <input type="text"  style="width:450px" maxlength="50" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
     34                                    <input type="text"  style="width:450px" maxlength="75" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
    3535                                </td>
    3636                            </tr>
  • trunk/src/grails-app/views/taskDetailed/edit.gsp

    r86 r91  
    4141                                </td>
    4242                                <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'description','errors')}">
    43                                     <input type="text" style="width:450px" maxlength="50" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
     43                                    <input type="text" style="width:450px" maxlength="75" id="description" name="description" value="${fieldValue(bean:taskInstance,field:'description')}"/>
    4444                                </td>
    4545                            </tr>
     
    9898                                </td>
    9999                            </tr>
    100                        
    101                             <tr class="prop">
    102                                 <td valign="top" class="name">
    103                                     <label for="assignedPersons">Assigned Persons:</label>
    104                                 </td>
    105                                 <td valign="top" class="value ${hasErrors(bean:taskInstance,field:'assignedPersons','errors')}">
    106                                    
    107 <ul>
    108 <g:each var="a" in="${taskInstance?.assignedPersons?}">
    109     <li><g:link controller="person" action="show" id="${a.id}">${a?.encodeAsHTML()}</g:link></li>
    110 </g:each>
    111 </ul>
    112 <g:link controller="person" params="['task.id':taskInstance?.id]" action="create">Add Person</g:link>
    113 
    114                                 </td>
    115                             </tr>
    116100                       
    117101                            <tr class="prop">
  • trunk/src/grails-app/views/taskDetailed/show.gsp

    r86 r91  
    5959                            <td valign="top" class="name">Lead Person:</td>
    6060                           
    61                             <td valign="top" class="value"><g:link controller="person" action="show" id="${taskInstance?.leadPerson?.id}">${taskInstance?.leadPerson?.encodeAsHTML()}</g:link></td>
     61                            <td valign="top" class="value">${taskInstance?.leadPerson?.encodeAsHTML()}</td>
    6262                           
    6363                        </tr>
     
    6666                            <td valign="top" class="name">Task Priority:</td>
    6767                           
    68                             <td valign="top" class="value"><g:link controller="taskPriority" action="show" id="${taskInstance?.taskPriority?.id}">${taskInstance?.taskPriority?.encodeAsHTML()}</g:link></td>
     68                            <td valign="top" class="value">${taskInstance?.taskPriority?.encodeAsHTML()}</td>
    6969                           
    7070                        </tr>
     
    7373                            <td valign="top" class="name">Task Status:</td>
    7474                           
    75                             <td valign="top" class="value"><g:link controller="taskStatus" action="show" id="${taskInstance?.taskStatus?.id}">${taskInstance?.taskStatus?.encodeAsHTML()}</g:link></td>
     75                            <td valign="top" class="value">${taskInstance?.taskStatus?.encodeAsHTML()}</td>
    7676                           
    7777                        </tr>
     
    7979                        <tr class="prop">
    8080                            <td valign="top" class="name">Assigned Persons:</td>
    81                            
    82                             <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'assignedPersons')}</td>
    83                            
    84                         </tr>
    85                    
    86                         <tr class="prop">
    87                             <td valign="top" class="name">Is Active:</td>
    88                            
    89                             <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isActive')}</td>
    90                            
    91                         </tr>
    92                    
    93                         <tr class="prop">
    94                             <td valign="top" class="name">Is Approved:</td>
    95                            
    96                             <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isApproved')}</td>
    97                            
    98                         </tr>
    99                    
    100                         <tr class="prop">
    101                             <td valign="top" class="name">Is Scheduled:</td>
    102                            
    103                             <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isScheduled')}</td>
    104                            
    105                         </tr>
    106                    
    107                         <tr class="prop">
    108                             <td valign="top" class="name">Modifications:</td>
    10981                           
    11082                            <td  valign="top" style="text-align:left;" class="value">
    11183                                <ul>
    112                                 <g:each var="m" in="${taskInstance.modifications}">
    113                                     <li><g:link controller="modification" action="show" id="${m.id}">${m?.encodeAsHTML()}</g:link></li>
     84                                <g:each var="s" in="${taskInstance.assignedPersons}">
     85                                    <li>${s?.firstName} ${s?.lastName}</li>
    11486                                </g:each>
    11587                                </ul>
    11688                            </td>
     89                           
     90                        </tr>
     91                   
     92                        <tr class="prop">
     93                            <td valign="top" class="name">Is Active:</td>
     94                           
     95                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isActive')}</td>
     96                           
     97                        </tr>
     98                   
     99                        <tr class="prop">
     100                            <td valign="top" class="name">Is Approved:</td>
     101                           
     102                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isApproved')}</td>
     103                           
     104                        </tr>
     105                   
     106                        <tr class="prop">
     107                            <td valign="top" class="name">Is Scheduled:</td>
     108                           
     109                            <td valign="top" class="value">${fieldValue(bean:taskInstance, field:'isScheduled')}</td>
    117110                           
    118111                        </tr>
     
    141134                            <td valign="top" class="name">Task Group:</td>
    142135                           
    143                             <td valign="top" class="value"><g:link controller="taskGroup" action="show" id="${taskInstance?.taskGroup?.id}">${taskInstance?.taskGroup?.encodeAsHTML()}</g:link></td>
     136                            <td valign="top" class="value">${taskInstance?.taskGroup?.encodeAsHTML()}</td>
    144137                           
    145138                        </tr>
     
    148141                            <td valign="top" class="name">Task Type:</td>
    149142                           
    150                             <td valign="top" class="value"><g:link controller="taskType" action="show" id="${taskInstance?.taskType?.id}">${taskInstance?.taskType?.encodeAsHTML()}</g:link></td>
     143                            <td valign="top" class="value">${taskInstance?.taskType?.encodeAsHTML()}</td>
    151144                           
    152145                        </tr>
     
    168161                    <thead>
    169162                        <tr>
    170                             <g:sortableColumn property="comment" title="Comment" />
     163                            <th style="color:Black">Comment</th>
     164                            <th style="color:Black">Date Done</th>
     165                            <th style="color:Black">Entered By</th>
     166<!--                            <g:sortableColumn property="comment" title="Comment" />
    171167                       
    172168                            <g:sortableColumn property="dateDone" title="Date Done" />
    173169                       
    174                             <g:sortableColumn property="enteredBy" title="Entered By" />
     170                            <g:sortableColumn property="enteredBy" title="Entered By" />-->
    175171                        </tr>
    176172                    </thead>
     
    198194                    <thead>
    199195                        <tr>
    200                             <g:sortableColumn property="comment" title="Comment" />
    201                        
    202                             <g:sortableColumn property="dateDone" title="Date Done" />
    203                        
    204                             <g:sortableColumn property="enteredBy" title="Entered By" />
     196                            <th style="color:Black">Comment</th>
     197                            <th style="color:Black">Date Done</th>
     198                            <th style="color:Black">Entered By</th>
     199<!--                            <g:sortableColumn property="commentW" title="Comment" />
     200                       
     201                            <g:sortableColumn property="dateDoneW" title="Date Done" />
     202                       
     203                            <g:sortableColumn property="enteredByW" title="Entered By" />-->
    205204                        </tr>
    206205                    </thead>
     
    223222            </div>
    224223
     224            <br />
     225
     226            <div class="buttons">
     227                <span class="menuButton" style="height:50px">
     228                    <g:link controller="entryDetailed" params="['task.id':taskInstance.id]" action="create">Add Entry</g:link>
     229                </span>
     230            </div>
     231
    225232        </div>
    226233    </body>
Note: See TracChangeset for help on using the changeset viewer.