Homework 7
CS520, Fall 2012
Due: Thursday, November 29
Package all the source files of your project into a zip file as you did
in Homework
1, and
upload the zip file to CSNS.
Note that file
uploading will be disabled automatically after 11:59PM
of the due date, so please turn in your work on time.
[Project Listings for CSNS2]
Continue to work on Project Listings
for CSNS2
and
implement the following functions. This assignment builds on
top of your work in the previous assignments, so make
sure that all the functions
from
the previous assignments work properly; otherwise you will not receive
any credit.
1. Security (40pt)
Use the tools provided by
Spring Security to implement the following security measures:
- Project listings (including all the resources associated with
them) can be
viewed by everyone.
- A project can be created by any authenticated user.
- A project can only be edited by the participants of the project
(i.e. the advisors or the students of the project). Note that editing a
project includes operations
such as adding/removing participants and adding/editing resources.
- The user interface should hide certain operations from the users
who do not have the privilege to perform those operations. In
particular,
- Links and/or buttons to create a project should be hidden from
anonymous users.
- Links and/or buttons to edit a project and
its participants and resources should be hidden from the users who
are not participants of the project.
For this exercise, please describe all the security
measures you have implemented and how you implemented them in a text
file hw7.txt,
and submit the file together with the project zip file.
2. Extra Credit
- (+40pt) Reorder resources of a project using Ajax Drag &
Drop.
Note that "Ajax" means not only the display order is changed on the
client side, the new order must be saved on the server side as well.
- (Up to +30pt) Good UI for project listings overall (i.e. not
just for the features in this assignment).
[About Submission and Grading]
Before submitting your work, commit all the changes to your
Subversion repository and
create a tag.
To test your project, we will use the following SQL scripts in
your zip file to create, populate, and then clear the database:
- src/main/scripts/csns-create.sql
- src/main/scripts/csns-test-insert.sql
- src/main/scripts/csns-drop.sql
Please make sure that these scripts are up to date and can be
run
in their
entirety without any problems.