class_GroupProfileBE.inc.php 2.31 KB
<?php
/**
 * @file	GroupProfileBE.inc.php
 * @category freeSN
 * @mailto	code [at] netz.coop
 * @version 0.4.200901
 * @link http://netz.coop
 * 
 *  @copyright Copyright by netz.coop e.G. 2015
 *  
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
class GroupProfileBE extends Profile implements iProfileCollection {

	public function saveObject(Account &$param_HostAccount, iStorable &$param_iStorable){

		$obj = parent::saveObject($param_HostAccount, $param_iStorable);
		/**
		 * @todo muss das wirklich sein noch mal laden .... 100408 @f
		 */
		$obj->loadObject($param_HostAccount, $param_iStorable);
		$memberBC=$obj->getClipboard($param_HostAccount, $param_iStorable, 'MemberProfileBC');

		if($memberBC){

			$AttachList=$memberBC->getAllAttachIDList();

			//alle die Schreiben dürfen werden automatisch in MemberProfileBC eingetragen
			foreach($this->getObjVar('RightManagement')->getAuthorisationList()->getWriteList() as $key => $value){

				if($value->getProfileID() != $this->getID()){
					if(!array_key_exists($value->getProfileID(),$AttachList)){
						$memberBC->add($param_HostAccount, $param_iStorable,$value->getProfileID(),MemberProfileBC::STATE_MASTER_ID);
					}
					else{
						$memberBC->changeState($param_HostAccount, $param_iStorable, $value->getProfileID(),MemberProfileBC::STATE_MASTER_ID);
					}
				}
			}

			//change State if no WriteRights
			foreach($AttachList as $key => $value){

				if($value['AttachStateID'] == MemberProfileBC::STATE_MASTER_ID && !$this->getObjVar('RightManagement')->getAuthorisationList()->checkWriteAuthorisation($key)){
					$memberBC->changeState($param_HostAccount, $param_iStorable, $key,MemberProfileBC::STATE_AUTHOR_ID);
				}
			}

		}

		return $obj;
	}
}
?>