Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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);
     }
 }
Пример #4
0
 /**
  * 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;
 }