/** * 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; }
/** * 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; }
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; } }
/** * 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); } }