<?php

class Main_Users_Model_User extends Rtn_Model {

	public function setFromArray($values) {		
		$type = $this->bean->getMeta('type');
		$columns = R::$writer->getColumns($type);

		foreach (array_keys($columns) as $property) {
			if (isset($values[$property])) {
				$this->bean->{$property} = $values[$property];
				unset($values[$property]);
			}
		}


		foreach (R::findAll('role') as $role) {
			if (!empty(Eppe_Acl::$_roles['admin']) && $role->id == Eppe_Acl::$_roles['admin']) {
				if (Eppe_Auth_Backend::userHasRole($role->id) && 
					Eppe_Auth_Backend::getCurrentUser()->id == Zend_Controller_Front::getInstance()->getRequest()->getParam('id')
					) {
					continue;
				}
			}
			
			if (@$values[$role->id] == 1) {
				$this->bean->sharedRole[$role->id] = $role;
			} elseif(Eppe_Acl::$_roles['superadmin'] != $role->id) {
				unset($this->bean->sharedRole[$role->id]);
			}
		}
	}

}
