示例#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
 /**
  * Prepares and shows the my program details page (cmd-my-program-details)
  *
  * Access: only owners and admins can load this page
  *
  * @param array args (not used)
  */
 public function get_read_my(array $args)
 {
     $this->data['can_not_delete'] = true;
     $this->load_object($args);
     // admin of the program or belongs to the same provider
     if (com_meego_devprogram_utils::is_current_user_creator_or_admin($this->object) || com_meego_devprogram_membutils::is_current_user_member_of_provider($this->object->provider->id)) {
         if (!$this->object->number_of_applications) {
             // program can only be deleted in no one has applied for it yet
             $this->data['can_not_delete'] = false;
         }
     } else {
         // redirect to standard read page
         $this->relocate_to_read();
     }
 }
示例#3
0
 /**
  * Prepares the update
  */
 public function get_update(array $args)
 {
     $this->load_object($args);
     if (com_meego_devprogram_utils::is_current_user_creator_or_admin($this->object) || com_meego_devprogram_membutils::is_current_user_member_of_provider($this->object->id)) {
         // if creator
         // or admin
         // or good enough member
         parent::get_update($args);
     } else {
         $redirect = com_meego_devprogram_utils::get_url('provider_read', array('provider_name' => $args['provider_name']));
         // redirect to the read page
         $this->mvc->head->relocate($redirect);
     }
 }
 /**
  * Prepares and shows the application approval page
  *
  * Access: only owners of the programs can judge applications
  *
  * @param array args
  */
 public function get_judge(array $args)
 {
     $this->load_object($args);
     if (!(com_meego_devprogram_utils::is_current_user_creator_or_admin($this->object) || com_meego_devprogram_membutils::is_current_user_member_of_provider($this->data['provider']->id))) {
         // not creator of the membership
         // not owner of the provider
         // not an administrator
         // nice try, but sorry, get back to index
         $this->mvc->head->relocate(com_meego_devprogram_utils::get_url('index', array()));
     }
     // we remove the toolbar on the judge form
     $this->data['membership']->can_manage = false;
     $this->load_judge_form();
     $this->data['form'] = $this->form;
     unset($this->data['object']);
 }
示例#5
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;
 }
示例#6
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;
 }