示例#1
0
	public function execute(){

		$request = $this->getContext()->getRequest();
		$id = $request->getParameter('id');

	   	$this->checkMemberAuth($id);

		$memberDao = new BaseDao('Member');
		$nocDao = new BaseDao("NatureOfChange");

		$nocId = $request->getParameter("deletionReason");

		if ($nocId) {
			$memberToDelete = $memberDao->get($id);
			$memberToDelete->nocFid = $nocId;

			$member = $memberDao->getPattern();
			$member = clone($memberToDelete);

			$member->deleted = 1;

			$memberDao->save($member);

			$this->log("Deleting member: ".$memberToDelete->firstname.", ".$memberToDelete->lastname.".");
			$this->log("Deleting member: ".$memberToDelete->firstname.", ".$memberToDelete->lastname.".", true);

		} else{
			$request->setAttribute('nocList', $nocDao->search());
			return "Form";
		}
	}
示例#2
0
 public function execute()
 {
     $identity = $this->getContext()->getRequest()->getParameter("id");
     $this->checkMemberAuth($identity);
     $dao = new BaseDao("Member");
     $member = $dao->get($identity);
     $member->dig();
     $request = $this->getContext()->getRequest();
     $request->setAttribute('member', $member);
     return View::SUCCESS;
 }
示例#3
0
 public function execute()
 {
     $identity = $this->getContext()->getRequest()->getParameter("id");
     $this->checkAffiliateAuth($identity);
     $dao = new BaseDao("Affiliate");
     $affiliate = $dao->get($identity);
     $affiliate->getLinks();
     $this->log("Vieving affiliate info. Id: {$identity}; name: " . $affiliate->name);
     $request = $this->getContext()->getRequest();
     $request->setAttribute('affiliate', $affiliate);
     if ($request->getAttribute('render') == 'form') {
         return 'EditForm';
     } else {
         return 'ReadOnly';
     }
 }
示例#4
0
 function dig()
 {
     $this->getLinks();
     if ($this->id != 0) {
         if (!$this->affiliates) {
             $assoc = DB_DataObject::factory('asc_members_affiliates');
             $assoc->memberFid = $this->id;
             $assoc->find();
             $dao = new BaseDao("Affiliate");
             while ($assoc->fetch()) {
                 $affiliate = $dao->get($assoc->affiliateFid);
                 array_push($this->affiliates, $affiliate);
             }
         }
     }
 }
    public function execute() {

       	$request = $this->getContext()->getRequest();
       	$id = $request->getParameter('id');
    	$userRole = $this->checkAffiliateAuth($id);

		$dao = new BaseDao("Affiliate");
		$affiliate = $dao->get($id);
		$members = $affiliate->getMembers(null, false);

    	$request->setAttribute("members", $members); 
    	$request->setAttribute("affId", $id); 
    	$request->setAttribute("affiliate", $affiliate); 

    	if ($userRole == "editor"){
    		$this->log("Starting certification for affiliate id: $id; name: ".$affiliate->name); 
    	} else if ($userRole == 'admin'){
    		$this->log("Starting certification for affiliate id: $id; name: ".$affiliate->name, true);
    	}

		return 'List';
        
    }
示例#6
0
    protected function checkMemberAuth($id) {
        //   		$request = $this->getContext()->getRequest();

        if (!$this->getContext()->getUser()->isAuthenticated()) {
            $this->getContext()->getController()->forward("Default", "Login");
            die();
        } else {
            $login = $this->getContext()->getUser()->getAttribute('Login');

            if ($this->isAdmin($login)) {
                return 'admin';
            }

            //if adding new
            if (!$id) return 'editor';

            $memberDao = new BaseDao("Member");
            $member = $memberDao->get($id);
            $member->dig();


            $memberIds = $this->getListOfCertainFieldValues($member->affiliates, 'id');
            $loginIds = $this->getListOfCertainFieldValues($login->affiliates, 'id');


            //if member is a least in one of affiliates where logined user editor
            if (count(array_intersect($memberIds, $loginIds)) != 0) {
                return 'editor';
            } else {
                $this->log("Unauthorized access attempt to member record. id: $id, name: " . $member->name, true);

                $this->getContext()->getRequest()->setParameter("message", "You are not authorized to access this member record because he isn't a member of your affiliate.");
                $this->getContext()->getController()->forward("Default", "Secure");
                return View::NONE;
            }
        }
    }
示例#7
0
	function checkEmail($fields) {

    	$errors = array();

    	$loginDao = new BaseDao("Login");

    	$id = $fields['user']['id'];
    	$email = $fields['user']['email'];

		if ($id) {
			$usr = $loginDao->get($id);
	    	if ( $this->isEmailExists($email) && ($usr->email != $email) ) {
			   $errors['user[email]'] = "User with this email already exists.";
			}
		} elseif ($this->isEmailExists($email)) {
			   $errors['user[email]'] = "User with this email already exists.";
		}
	    

	    if (empty($errors)) return TRUE;
	     else return $errors;
    }
示例#8
0
 function getOneRole()
 {
     $roleDao = new BaseDao("Role");
     $this->roles[] = $roleDao->get($this->roleFid);
     return $this->roles;
 }
示例#9
0
	public function getPredicate(){
		$identity = $this->getContext()->getRequest()->getParameter("id");
		$dao = new BaseDao("Member");
		if($identity)
			$member = $dao->get($identity);
		else
			$member = $dao->getPattern();
		$member->dig();
		return new MemberEditPredicate("Editor", $member->affiliates);
	}
示例#10
0
    public function execute()
    {
    	ini_set("memory_limit", "200M");

   		$request = $this->getContext()->getRequest();

		$identity = $this->getContext()->getRequest()->getParameter("id");

	    //redirect if we press Cancel button
		if($request->getParameter('cancel')) {

	    	$this->log("Cancel editing. Changes not saved.");
	    	$this->log("Cancel editing. Changes not saved.", true);

			if (!$identity){	
				$request->setParameter("searchFor", "Affiliate");
				$this->getContext()->getController()->forward('Default', "Search");
			}else{
				$this->getContext()->getController()->forward('Default', "AffiliateView");
			}

			return View::NONE;
		}


		$userRole = $this->checkAffiliateAuth($identity);
		
		$membersIds = array();

		$dao = new BaseDao("Affiliate");

		if($identity){
			$affiliate = $dao->get($identity);
			$affiliate->getLinks();
			$fullMembersInfo = $affiliate->getMembers();
			$members = $this->prepareMembersListForDropdown($fullMembersInfo); 
			$membersIds = (count($members) != 0) ? array_keys($members) : array();
			$request->setAttribute('members', $members);
		} else {
			$affiliate = $dao->getPattern();
		}
		
		$request->setAttribute("affiliate", $affiliate);

		$needToSaveChanges = !($this->isRecordModifiedBySameRolePerson($affiliate, $userRole));
		                                                                  
		$request->setAttribute("needToApproveChanges", $needToSaveChanges && $this->isRecordHasActiveTransactions($affiliate));

		if ($request->getParameter('rollback')) {

	    	$this->log("Rollback changes affiliate id: $identity; name: ".$affiliate->name);
	    	$this->log("Rollback changes affiliate id: $identity; name: ".$affiliate->name, true);

			$this->rollBackChanges($affiliate);
			$dao->save($affiliate);

		} elseif($request->getParameter('accept')){

	    	$this->log("Accepting changes affiliate id: $identity; name: ".$affiliate->name);
	    	$this->log("Accepting changes affiliate id: $identity; name: ".$affiliate->name, true);
			
			$this->acceptChanges($affiliate);	
			$dao->save($affiliate);
			
		} elseif($request->getParameter('save')){

	    	$this->log("Saving changes affiliate id: $identity; name: ".$affiliate->name);
	    	$this->log("Saving changes affiliate id: $identity; name: ".$affiliate->name, true);

			//if we're not adding affiliate
			if ($needToSaveChanges) {
				$this->saveTransaction($affiliate);
		    	$this->log("Changes made by $userRole need to be approved. Affiliate id: $identity; name: ".$affiliate->name);
			}
			
			$affiliate->name = $request->getParameter('name');
			$affiliate->abbreviation = $request->getParameter("abbreviation");
			$affiliate->president = $request->getParameter("president");
			$affiliate->vicePresident1 = $request->getParameter("vicePresident1");
			$affiliate->vicePresident2 = $request->getParameter("vicePresident2");
			$affiliate->generalSecretary = $request->getParameter("generalSecretary");
			$affiliate->correspondingSecretary = $request->getParameter("correspondingSecretary");
			$affiliate->treasurerSecretary = $request->getParameter("treasurerSecretary");
			$affiliate->treasurer = $request->getParameter("treasurer");
			$affiliate->databaseManager = $request->getParameter("dbManager");
			$affiliate->lastCertified = $request->getParameter("lastCertifiedDateYear") . "-" . $request->getParameter("lastCertifiedDateMonth") . "-" . $request->getParameter("lastCertifiedDateDay");
			$affiliate->type = $request->getParameter("type");
//			$affiliate->lastCertified = $request->getParameter("lastCertifiedY") . "-" . $request->getParameter("lastCertifiedM") . "-" . $request->getParameter("lastCertifiedD");
			$dao->save($affiliate);

			$newMembersIds = $request->getParameter("members");

			$this->saveLinks($newMembersIds, $membersIds, $affiliate->id);

			$identity = $affiliate->id;
			$redirectTo = "AffiliateView?id=$identity";

		} else {
			if($identity){
		    	$this->log("Starting editing affiliate id: $identity; name: ".$affiliate->name);
		    	$this->log("Starting editing affiliate id: $identity; name: ".$affiliate->name, true);
    		} else{
		    	$this->log("Starting inserting new affiliate.");
		    	$this->log("Starting inserting new affiliate.", true);
			}

			return 'Form';
		}

		$request->setParameter('id', $identity);
//   		header("location: $redirectTo");
		$this->getContext()->getController()->forward('Default', "AffiliateView");
		return View::NONE;

	}