/** * Retrieves programs of the currently loged in user * * @return array an array of com_meego_devprogram_programs objects * null if user is not logged in */ public static function get_open_programs_of_current_user() { $programs = array(); // retrieve the user's guid based on the login name $user = self::require_login(); if (!is_object($user)) { return null; } // all devices from this user and by fellow members of the same provider $memberships = com_meego_devprogram_membutils::get_memberships_of_current_user(); foreach ($memberships as $membership) { // check status if ($membership->status == CMD_MEMBERSHIP_APPROVED) { // get device objects $devices = com_meego_devprogram_devutils::get_devices(array('provider' => $membership->provider)); // find all programs belonging all devices found before foreach ($devices as $device) { $filters = array('status' => CMD_PROGRAM_OPEN, 'device' => $device->id); $programs = array_merge($programs, self::get_programs($filters)); } } } return $programs; }
/** * Retrieves devices of the currently loged in user * * @return array an array of com_meego_devprogram_device objects * null if user is not logged in */ public static function get_devices_of_current_user() { $devices = array(); $user = self::require_login(); if (!is_object($user)) { return null; } // all devices from this user and by fellow members of the same provider $memberships = com_meego_devprogram_membutils::get_memberships_of_current_user(); foreach ($memberships as $membership) { // check status if ($membership->status == CMD_MEMBERSHIP_APPROVED) { // get provider objects and add it to the array $devices = array_merge($devices, self::get_devices(array('provider' => $membership->provider))); } } return $devices; }
/** * Prepares the membership page * * @param array args */ public function get_create(array $args) { if (!strlen($args['provider_name'])) { $url = com_meego_devprogram_utils::get_url('index', $args); $this->mvc->head->relocate($url); } // require login $redirect = com_meego_devprogram_utils::get_url('my_membership_create', $args); $user = com_meego_devprogram_utils::require_login($redirect); // @todo: sanity check $providers = com_meego_devprogram_provutils::get_providers(array('name' => $args['provider_name'])); $provider = $providers[0]; if (!is_object($provider)) { throw new InvalidArgumentException("Provider: {$args['provider_name']} con not be found"); } $this->data['provider'] = $provider; $this->data['person'] = $user->person; // check if the user has applied for the program and // display a warning if yes $this->data['mymemberships'] = com_meego_devprogram_membutils::get_memberships_of_current_user($provider->id); if (!count($this->data['mymemberships'])) { // we move on if user has not member yet parent::get_create($args); } }
/** * Retrieves providers of the currently loged in user * * @return array an array of com_meego_devprogram_provider objects * null if user is not logged in */ public static function get_providers_of_current_user() { $providers = array(); $user = self::require_login(); if (!is_object($user)) { return null; } // get providers based on memberships $memberships = com_meego_devprogram_membutils::get_memberships_of_current_user(); foreach ($memberships as $membership) { // check status if ($membership->status == CMD_MEMBERSHIP_APPROVED) { // get provider objects and add it to the array $providers[] = self::get_provider_by_id($membership->provider); } } return $providers; }