/**
 * Find a user based on login name and returns its guid
 * @param string login name
 */
function retrieve_user_guid($login = null)
{
    $retval = null;
    if ($login) {
        $storage = new midgard_query_storage('midgard_user');
        $q = new midgard_query_select($storage);
        $q->set_constraint(new midgard_query_constraint(new midgard_query_property('login'), '=', new midgard_query_value($login)));
        $q->execute();
        $q->toggle_readonly(false);
        $users = $q->list_objects();
        if (count($users)) {
            $retval = $users[0]->person;
        }
        unset($storage, $q, $users);
    }
    return $retval;
}
Exemplo n.º 2
0
 /**
  * Returns the link of the avatar image that can be used in e.g. img src
  *
  * @param string user name
  * @return string url
  */
 public function get_avatar($username = null)
 {
     $retval = midgardmvc_core::get_instance()->configuration->default_avatar;
     if ($username) {
         midgardmvc_core::get_instance()->authorization->enter_sudo('midgardmvc_core');
         // determine the person guid
         $storage = new midgard_query_storage('midgard_user');
         $q = new midgard_query_select($storage);
         $q->set_constraint(new midgard_query_constraint(new midgard_query_property('login'), '=', new midgard_query_value($username)));
         $q->execute();
         $q->toggle_readonly(false);
         $users = $q->list_objects();
         midgardmvc_core::get_instance()->authorization->leave_sudo();
         if (count($users)) {
             $user = $users[0];
         }
         $account = midgardmvc_account_injector::get_account($user->person);
         if ($account->guid) {
             $retval = $account->avatarurl;
         }
     }
     return $retval;
 }
Exemplo n.º 3
0
 private function _get_user()
 {
     if ($this->_midgard2) {
         $storage = new midgard_query_storage('midgard_user');
         $qs = new midgard_query_select($storage);
         $group = new midgard_query_constraint_group('AND');
         $group->add_constraint(new midgard_query_constraint(new midgard_query_property('person'), '=', new midgard_query_value($this->_person->guid)));
         $group->add_constraint(new midgard_query_constraint(new midgard_query_property('authtype'), '=', new midgard_query_value($GLOBALS['midcom_config']['auth_type'])));
         $qs->set_constraint($group);
         $qs->toggle_readonly(false);
         $qs->execute();
         $result = $qs->list_objects();
         if (sizeof($result) != 1) {
             return new midgard_user();
         }
         return $result[0];
     } else {
         return $this->_person;
     }
 }
Exemplo n.º 4
0
 /**
  * Creates a role object for the package
  */
 public function createRole($package_guid, $userid, $role)
 {
     $storage = new midgard_query_storage('midgard_user');
     $q = new midgard_query_select($storage);
     $q->set_constraint(new midgard_query_constraint(new midgard_query_property('login'), '=', new midgard_query_value($userid)));
     $q->toggle_readonly(false);
     $q->execute();
     $users = $q->list_objects();
     if (count($users)) {
         $user = $users[0];
     } else {
         $user = $this->createUser($userid);
     }
     // check if this role is already set
     midgard_error::info(__CLASS__ . ' Check if role exists: (' . $package_guid . ', ' . $userid . ', ' . $role . ')');
     $storage = new midgard_query_storage('com_meego_package_role');
     $q = new midgard_query_select($storage);
     $qc = new midgard_query_constraint_group('AND');
     $qc->add_constraint(new midgard_query_constraint(new midgard_query_property('package'), '=', new midgard_query_value($package_guid)));
     $qc->add_constraint(new midgard_query_constraint(new midgard_query_property('user'), '=', new midgard_query_value($user->guid)));
     $qc->add_constraint(new midgard_query_constraint(new midgard_query_property('role'), '=', new midgard_query_value($role)));
     $q->set_constraint($qc);
     $q->execute();
     $roles = $q->list_objects();
     if (!count($roles)) {
         $role_obj = new com_meego_package_role();
         $role_obj->package = $package_guid;
         $role_obj->user = $user->guid;
         $role_obj->role = $role;
         if (!$role_obj->create()) {
             $error = midgard_connection::get_instance()->get_error_string();
             midgard_error::error(__CLASS__ . " Creating role object failed: " . $error);
         }
         midgard_error::info(__CLASS__ . " Creating role object succeeded: " . $role_obj->guid);
     } else {
         midgard_error::info(__CLASS__ . " Role object already exists: " . $roles[0]->guid);
     }
 }