Пример #1
0
 /**
  * Adds some handy properties to provider object
  *
  * @param object com_meego_devprogram_provider object
  * @return object extended com_meego_devprogram_provider object
  */
 private function extend_provider($object = null)
 {
     // q->toggle_readonly(false) does not work so we need a new object
     $provider = new com_meego_devprogram_provider($object->guid);
     $provider->read_url = com_meego_devprogram_utils::get_url('provider_read', array('provider_name' => $provider->name));
     $provider->update_url = com_meego_devprogram_utils::get_url('provider_update', array('provider_name' => $provider->name));
     $provider->delete_url = com_meego_devprogram_utils::get_url('provider_delete', array('provider_name' => $provider->name));
     $provider->join_url = com_meego_devprogram_utils::get_url('my_membership_create', array('provider_name' => $provider->name));
     // if current user is owner then we can add more goodies
     $user = com_meego_devprogram_utils::get_current_user();
     $provider->number_of_members = false;
     $mvc = midgardmvc_core::get_instance();
     // set the can join flag to true by default
     $provider->can_join = true;
     // set management fflag to false by default
     $provider->can_manage = false;
     // can current user manage the provider
     if (com_meego_devprogram_utils::is_current_user_creator_or_admin($object) || com_meego_devprogram_membutils::is_current_user_member_of_provider($object->id)) {
         $provider->can_manage = true;
         $provider->can_join = false;
         // set the url for the membership list page
         $provider->list_memberships_url = com_meego_devprogram_utils::get_url('provider_members', array('provider_name' => $provider->name));
         // set the approved number of members (all but the cancelled ones) of this provider
         $provider->number_of_members = count(com_meego_devprogram_membutils::get_memberships_by_provider($provider->id));
         // set the number of pending membership requests
         $provider->number_of_members = count(com_meego_devprogram_membutils::get_memberships_by_provider($provider->id));
     }
     // can the provider be deleted; ie. check if provider has devices that belong to open programs
     $provider->can_not_delete = com_meego_devprogram_provutils::has_provider_devices($object->id);
     return $provider;
 }
Пример #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);
     }
 }
Пример #4
0
 /**
  * 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']);
 }