PHP Zend Framework 1.12 - Implement ACL to Web Application
$30-250 USD
종료됨
게시됨 4년 이상 전
$30-250 USD
제출할때 지불됩니다
Hi,
I've a PHP Zend Framework 1.12 Web Application that I need to implement ACL ([login to view URL]
).
The current Web Aplication have a simple authorization method that allows to create users, define passwords and assign the users to a group.
This simple authorization method is now insuficient to my needs and I need to implement something more granular.
Example of what I need to be able to do:
- For the user123 I need to give the following permissions. Run the indexAction() method, Deny createAction() method, Deny DeleteAction() method.
- For all users of the group Xyz I need go give the following permissions. Run the indexAction() method, Deny createAction() method, Deny DeleteAction() method.
- I need to define and store in the database the functions that each user or each group could Run(have access to).
- In the HTML links to the controllers ( indexAction() for example ) in the Web Application I will need to show only controllers with permissions.
Now I can only do the following:
- If the user123 is logged in he can Run all methods. indexAction(), createAction(), DeleteAction().
Example of a tipical Controller:
<?php
class CommissionsController extends Zend_Controller_Action
{
public function init()
{
// Instantiate Global Models
$this->usersModel = new Application_Model_Users();
$this->commissionsModel = new Application_Model_Commissions();
// Get Session Details
$this->user_session_details = $this->usersModel->getSessionUserDetails();
if (!$this->usersModel->isAuthenticated()) { $this->_redirect('/Auth/Login'); }
}
public function indexAction()
{
$this->view->commissions = $this->commissionsModel->getCommisions();
}
public function createAction()
{
if ($this->_request->isPost())
{
$payments_id = $this->_request->payments_id;
$comment = $this->_request->comment;
// Save to the Database
$ins_commission = $this->commissionsModel->insertCommission($payments_id,
$comment,
$this->user_session_details['id']);
// redirect
$this->_redirect('/Commissions/');
}
$this->view->payments_not_inserted = $this->commissionsModel->getPaymentsNotInserted();
}
If you are able to implement the ACL in this Web Application and want to make a proposal, in this proposal tell me how many DB tables you will use.
For now I've 2 DB tables, users and users_groups.
Dear Sir,
Your project is a piece of cake for our experts. We have a huge experience in Zend, MySQL, HTML and PHP, so we can do this project for you. Our team has valuable experience in outsourced web development, software development, managed services and 24/7 technical support. We guarantee Canadian quality. Please, review our profile to find detailed information about our company and our portfolio.
We wait for further information from you in order to start cooperation.
Best regards,
Sales Department
Tangram Canada Inc
Hello,
I have read your job details carefully and I can do your work if you will provide me more details of the project. I will definitely give you a better solution to your problem.
Thanks
Hello!
I have been working with ZendFramework 1.12 for 10 years, and I still do all days.
The work needs define all rules (user's groups, even a admin for your user123 with specialls permissions)
The tables that you have it is ok.
The ACL will define structure on a php, with all routes permission for all user groups (roles).
Too, it will be necessary to inspect all html to write links on right way, ( or another posibility is use navigation zend tool, that builds a menu according to the role permissions).
( it depends on structure html that you have and you want)
I hope to hear from you.
I've aleady done ACL in ZF1 app.
We will need:
user_acl_resource table, with columns: id, controler, action, role_id (defeined per user, stored in session)
user_role table with columns: id, user_id, parent_id (role inherit from his parent), name
and to user_table add role_id column
rest in code
regards
Marcin