Exemplo n.º 1
0
    public function getUser($filter)
    {
        $user = parent::getUser($filter);
        if (!is_null($user)) {
            // Get the user's roles from moodle
            $sqlRoles = 'SELECT shortname
						 FROM
							mdl_role AS r
						INNER JOIN
							mdl_role_assignments AS ra
								ON ra.roleid = r.id
						INNER JOIN mdl_user  AS u
								ON u.id = ra.userid
						WHERE userid = [[id]]
						group by shortname';
            $param = array("id" => $user->getField($this->getUserTable()->id));
            $it = $this->_db->getIterator($sqlRoles, $param);
            foreach ($it as $sr) {
                $user->addField("roles", $sr->getField('shortname'));
            }
            // Find the moodle site admin (super user)
            $user->setField($this->getUserTable()->admin, 'no');
            $sqlAdmin = "select value from mdl_config where name = 'siteadmins'";
            $it = $this->_db->getIterator($sqlAdmin);
            if ($it->hasNext()) {
                $sr = $it->moveNext();
                $siteAdmin = ',' . $sr->getField('value') . ',';
                $isAdmin = strpos($siteAdmin, ",{$user->getField($this->getUserTable()->id)},") !== false;
                $user->setField($this->getUserTable()->admin, $isAdmin ? 'yes' : 'no');
            }
        }
        return $user;
    }