E1915 Authorization Utilities
E1915. Authorization Utilities
This page provides a description of an Expertiza OSS project.
About Expertiza
Expertiza is an open source project based on Ruby on Rails framework. Expertiza allows the instructor to create new assignments and customize new or existing assignments. It also allows the instructor to create a list of topics the students can sign up for. Students can form teams in Expertiza to work on various projects and assignments. Students can also peer review other students' submissions. Expertiza supports submission across various document types, including the URLs and wiki pages.
Problem Statement
The following tasks were accomplished in this project:
- Centralize user authentication logic to support the DRY principle
- Improve user authentication logic in cases where it was clearly flawed
- Support this work with RSpec unit tests
Current Implementation
Functionality
- Most controllers contain an action_allowed? method which determines which users are allowed to perform which actions
- This logic is in most cases correct, but is often repeated between controllers (un-DRY)
- This logic is in some cases slightly incorrect
- The Roles model provides a helpful method hasAllPrivilegesOf, which could be used to simplify authorization logic
Drawbacks and Solutions
- Problem 1: TODO: add description of problem 1
# TODO: add code demonstrating problem 1
- Solution: TODO: add description of solution to problem 1
New Implementation
- TODO: add bulleted list of new implementation stuff
# TODO: add code demonstrating something about each new implementation bullet point
Code improvements
- TODO: add bulleted list of code improvements that are not already discussed above
Automated Testing using RSPEC
TODO: describe our strategy for RSPEC testing
# TODO add terminal command and result for running RSPEC testing on our new code
Testing from UI
- TODO: add bulleted list of manual test steps for a few key authorizations
References (General)
- Expertiza on GitHub
- The live Expertiza website
- Expertiza project documentation wiki
- Rspec Documentation
References (Our Work)
- GitHub Project Repository Fork
- [TODO: add link to our deployed app]