Source for file process_authorizations.act.php

Documentation is available at process_authorizations.act.php

  1. <?php
  2.  
  3. /**
  4. * process_authorizations.act.php
  5. * This action will create or delete authorizations as specified by edit_authorizations.act.php
  6. * 11/18/04 Ryan Richards
  7. *
  8. * @package polyphony.authorization
  9. *
  10. * @copyright Copyright &copy; 2005, Middlebury College
  11. * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License (GPL)
  12. *
  13. * @version $Id: process_authorizations.act.php,v 1.15 2007/09/19 14:04:53 adamfranco Exp $
  14. */
  15.  
  16. class process_authorizationsAction {
  17. function execute() {
  18. $harmoni = Harmoni::instance();
  19. // Get services
  20. $idManager = Services::getService("Id");
  21. $authZ = Services::getService("AuthZ");
  22.  
  23. $harmoni->request->startNamespace("polyphony-authorizations");
  24.  
  25. // Get info passed to this action via the URL
  26. $operation = RequestContext::value("operation");
  27. $functionIdString = RequestContext::value("functionId");
  28. $qualifierIdString = RequestContext::value("qualifierId");
  29.  
  30. $agentList = array();
  31. if (RequestContext::value("mult")) {
  32. $agentList = unserialize(urldecode(RequestContext::value("agents")));
  33. } else {
  34. $agentList = array(RequestContext::value("agentId"));
  35. }
  36.  
  37. // Process authorizations
  38. if ($operation == 'create') {
  39. // Get Ids from these strings
  40. $functionId =$idManager->getId($functionIdString);
  41. $qualifierId =$idManager->getId($qualifierIdString);
  42. foreach ($agentList as $agentIdString) {
  43. $authZ->createAuthorization($idManager->getId($agentIdString), $functionId, $qualifierId);
  44. }
  45. } else if ($operation == 'delete') {
  46. // Get Ids from these strings
  47. $functionId =$idManager->getId($functionIdString);
  48. $qualifierId =$idManager->getId($qualifierIdString);
  49. foreach ($agentList as $agentIdString) {
  50. $authorizations =$authZ->getExplicitAZs($idManager->getId($agentIdString), $functionId, $qualifierId, false);
  51. while ($authorizations->hasNext()) {
  52. $authorization =$authorizations->next();
  53. /* $qualifier =$authorization->getQualifier();
  54. $function =$authorization->getFunction();
  55. $qualifierId =$qualifier->getId();
  56. $functionId =$function->getId();
  57. print "auth -> function: ".$functionId->getIdString().", qualifier: ".$qualifierId->getIdString()."<br/>";
  58. */ $authZ->deleteAuthorization($authorization);
  59. }
  60. }
  61. } else if ($operation == 'delete_all') {
  62. // clear all authorizations for the users selected
  63. foreach ($agentsList as $agentIdString) {
  64. $authorizations =$authZ->getAllExplicitAZsForAgent($idManager->getId($agentIdString), false);
  65. while($authorizations->hasNext()) {
  66. $authorization =$authorizations->next();
  67. $authZ->deleteAuthorization($authorization);
  68. }
  69. }
  70. }
  71.  
  72. $harmoni->request->endNamespace();
  73.  
  74. $harmoni->history->goBack("polyphony/agents/process_authorizations");
  75. }
  76. }

Documentation generated on Wed, 19 Sep 2007 10:25:43 -0400 by phpDocumentor 1.3.0RC3