public static function registerUser()
 {
     $newUser = new User();
     $username = $_POST['username'];
     $password = $_POST['password'];
     $password2 = $_POST['password2'];
     $boo = FALSE;
     $errors = User::validateUsername($username);
     if (count($errors) > 0) {
         View::make('/user/register.html', array('message' => $errors[0]));
     }
     $errors = User::validatePassword($password);
     if (count($errors) > 0) {
         View::make('/user/register.html', array('username' => $username, 'message' => $errors[0]));
     }
     $newUser->setUsername($username);
     $newUser->setPassword($password);
     $newUser->setAdmin($boo);
     if ($password == $password2) {
         $newUser->saveUser();
         $_SESSION['user'] = $newUser->user_id;
     } else {
         Redirect::to('/register', array('username' => $username, 'message' => 'Passwords do not match.'));
     }
     Redirect::to('/', array('message' => 'User has been registered.'));
 }
Example #2
0
function create_new_user()
{
    $u = new User();
    $u->setUsername($_POST['username']);
    $u->setPassword($_POST['password']);
    $u->setAdmin(isset($_POST['role']));
    $u->save();
    return $u->getMessages();
}
Example #3
0
 public static function createSampleUser($forename, $surname, $dn)
 {
     $u = new User();
     $u->setForename($forename);
     $u->setSurname($surname);
     $u->setCertificateDn($dn);
     $u->setAdmin(FALSE);
     return $u;
 }
Example #4
0
 public function fillUserAttributesFromQuery($row)
 {
     $user = new User();
     $user->setUser_id($row->user_id);
     $user->setUsername($row->username);
     $user->setPassword($row->password);
     $user->setAdmin($row->admin);
     $user->setLast_login($row->last_login);
     return $user;
 }
Example #5
0
 //     	echo "Identical DN inserted apart from right hand whitespace: "
 //     			. $dn . "-----------\r\n";
 //     	continue;
 //     }
 //     $rightWhiteDNs[rtrim($dn)] = true;
 $doctrineUser = new User();
 $doctrineUser->setForename((string) $user->FORENAME);
 $doctrineUser->setSurname((string) $user->SURNAME);
 $doctrineUser->setTitle((string) $user->TITLE);
 $doctrineUser->setEmail((string) $user->EMAIL);
 $doctrineUser->setTelephone((string) $user->TEL);
 $doctrineUser->setWorkingHoursStart((string) $user->WORKING_HOURS_START);
 $doctrineUser->setWorkingHoursEnd((string) $user->WORKING_HOURS_END);
 //$doctrineUser->setCertificateDn((string) $user->CERTDN);
 $doctrineUser->setCertificateDn($dn);
 $doctrineUser->setAdmin(false);
 //  echo "DN is " . (string) $doctrineUser->getCertificateDn() . ".\r\n";
 // Roughly half of users don't have a home site set
 if ($user->HOMESITE != "" && !isBad($user->HOMESITE)) {
     // get the home site entity
     $dql = "SELECT s from Site s WHERE s.shortName = ?1";
     $homeSites = $entityManager->createQuery($dql)->setParameter(1, (string) $user->HOMESITE)->getResult();
     /* Error checking: ensure each "home site" refers to exactly
      * one home site */
     if (count($homeSites) !== 1) {
         throw new Exception(count($homeSites) . " sites found with short name: " . $user->HOMESITE . ". user DN is  " . $user->CERTDN);
     }
     foreach ($homeSites as $result) {
         $homeSite = $result;
     }
     $doctrineUser->setHomeSiteDoJoin($homeSite);
Example #6
0
function login_ldap($username, $password)
{
    // ldap connecting: must be a valid LDAP server!
    try {
        $ds = ldap_connect("ds.uni-sofia.bg");
    } catch (Exception $e) {
        $error = new Error("User: {$username} failed login:"******"uid={$username},ou=People,dc=uni-sofia,dc=bg";
            $userbind = ldap_bind($ds, $user_dn, $password);
            // verify binding
            if ($userbind) {
                global $ldapRdn;
                global $ldapPass;
                // set ldap bind variables
                $ldaprdn = $ldapRdn;
                $ldappass = $ldapPass;
                // binding to ldap server
                $ldapbind = ldap_bind($ds, $ldaprdn, $ldappass);
                // verify binding
                if ($ldapbind) {
                    // data array
                    $array = array("displayname", "mail", "title", "suscientifictitle", "suscientificdegree", "suFaculty", "suDepartment", "suStudentFaculty", "ou", "objectclass");
                    //$array = array("displayname", "mail", "title");
                    $sr = ldap_search($ds, "ou=People,dc=uni-sofia,dc=bg", "(uid={$username})", $array, 0, 0, 0);
                    $pass = md5($password);
                    $email = "";
                    $givenname = "";
                    $title = "";
                    $staff_groups = "";
                    $student_groups = "";
                    $staff_groups_id = array();
                    $student_groups_id = array();
                    $student_groups_array = array();
                    $staff_groups_array = array();
                    $info = ldap_get_entries($ds, $sr);
                    for ($i = 0; $i < count($info); $i++) {
                        if (isset($info[$i]['mail'])) {
                            $email = $info[$i]['mail'][0];
                        }
                        if (isset($info[$i]['displayname'])) {
                            $givenname = $info[$i]['displayname'][0];
                        }
                        if (isset($info[$i]['title'])) {
                            $title .= $info[$i]['title'][0];
                        }
                        if (isset($info[$i]['suscientifictitle'])) {
                            $title .= " " . $info[$i]['suscientifictitle'][0];
                        }
                        if (isset($info[$i]['suscientificdegree'])) {
                            $title .= " " . $info[$i]['suscientificdegree'][0];
                        }
                        if (isset($info[$i]['objectclass'])) {
                            if (in_array("suStudentPerson", $info[$i]['objectclass']) && !in_array("suFacultyPerson", $info[$i]['objectclass'])) {
                                if (isset($info[$i]['sustudentfaculty'])) {
                                    foreach ($info[$i]['sustudentfaculty'] as $student_group) {
                                        if (!is_int($student_group)) {
                                            array_push($student_groups_array, $student_group);
                                        }
                                    }
                                } elseif (isset($info[$i]['sufaculty'])) {
                                    foreach ($info[$i]['sufaculty'] as $student_group) {
                                        if (!is_int($student_group)) {
                                            array_push($student_groups_array, $student_group);
                                        }
                                    }
                                }
                            }
                            if (in_array("suStaffPerson", $info[$i]['objectclass']) || in_array("suFacultyPerson", $info[$i]['objectclass'])) {
                                if (isset($info[$i]['sufaculty'])) {
                                    foreach ($info[$i]['sufaculty'] as $staff_group) {
                                        if (!is_int($staff_group) && !in_array($staff_group, $student_groups_array)) {
                                            array_push($staff_groups_array, $staff_group);
                                        }
                                    }
                                }
                                if (isset($info[$i]['sudepartment'])) {
                                    foreach ($info[$i]['sudepartment'] as $staff_group) {
                                        if (!is_int($staff_group)) {
                                            array_push($staff_groups_array, $staff_group);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    // get the ids of the staff groups
                    foreach ($staff_groups_array as $staff_group_name) {
                        $staff_group_ids = get_group_by_name($staff_group_name);
                        if (!empty($staff_group_ids)) {
                            foreach ($staff_group_ids as $group_id) {
                                $group = new Group();
                                $group->get_from_db($group_id);
                                if ($group->getLocal() == "0" && $group->getStudent() == "0" && $group->getStaff() == "1") {
                                    array_push($staff_groups_id, $group_id);
                                }
                            }
                        }
                    }
                    // get the ids of the student groups
                    foreach ($student_groups_array as $student_group_name) {
                        $student_group_ids = get_group_by_name($student_group_name);
                        if (!empty($student_group_ids)) {
                            foreach ($student_group_ids as $group_id) {
                                $group = new Group();
                                $group->get_from_db($group_id);
                                if ($group->getLocal() == "0" && $group->getStudent() == "1" && $group->getStaff() == "0") {
                                    array_push($student_groups_id, $group_id);
                                }
                            }
                        }
                    }
                    // set common properties
                    $staff_groups .= serialize($staff_groups_id);
                    $student_groups .= serialize($student_groups_id);
                    $user = new User();
                    $user->setUsername($username);
                    $user->setPassword($pass);
                    $user->setLocal(0);
                    $user_exists = get_user_by_username($username);
                    $time_now = date("Y-m-d H:i:s");
                    if (!empty($user_exists)) {
                        $user->get_from_db($user_exists[0]);
                        $user->setGivenname($givenname);
                        $user->setTitle($title);
                        $user->setStaffGroups($staff_groups);
                        $user->setStudentGroups($student_groups);
                        $user->setId($user_exists[0]);
                        $user->setId($pass);
                        $user->setLastEditedOn($time_now);
                        $user->update_in_db();
                        $info = new Info("User: id " . $user->getId() . " update in db");
                        $info->writeLog();
                    } else {
                        $user->setEmail($email);
                        $user->setCanVote(1);
                        $user->setCanAsk(0);
                        $user->setAdmin(0);
                        $user->setGivenname($givenname);
                        $user->setTitle($title);
                        $user->setStaffGroups($staff_groups);
                        $user->setStudentGroups($student_groups);
                        $user->setLocalGroups(serialize(array()));
                        $user->setIsActive(1);
                        $user->setCreatedOn($time_now);
                        $user->setLastEditedOn($time_now);
                        $user->store_in_db();
                        $info = new Info("User: {$username} added in db");
                        $info->writeLog();
                    }
                    ldap_close($ds);
                }
            }
        } catch (Exception $e) {
            $error = new Error("User: {$username} failed login:"******"LDAP server unavailable");
        $error->writeLog();
    }
}
Example #7
0
 /**
  * Array
  * (
  *     [TITLE] => Mr
  *     [FORENAME] => Testing
  *     [SURNAME] => TestFace
  *     [EMAIL] => JCasson@gmail.com
  *     [TELEPHONE] => 01235 44 5010
  *     [CERTIFICATE_DN] => /C=UK/O=eScience/OU=CLRC/L=RAL/CN=claire devereuxxxx
  * )
  * @param array $values User details, defined above
  */
 public function register($values)
 {
     // validate the input fields for the user
     $this->validateUser($values);
     // Check the DN isn't already registered
     $user = $this->getUserByPrinciple($values['CERTIFICATE_DN']);
     if (!is_null($user)) {
         throw new \Exception("DN is already registered in GOCDB");
     }
     //Explicity demarcate our tx boundary
     $this->em->getConnection()->beginTransaction();
     $user = new \User();
     try {
         $user->setTitle($values['TITLE']);
         $user->setForename($values['FORENAME']);
         $user->setSurname($values['SURNAME']);
         $user->setEmail($values['EMAIL']);
         $user->setTelephone($values['TELEPHONE']);
         $user->setCertificateDn($values['CERTIFICATE_DN']);
         $user->setAdmin(false);
         $this->em->persist($user);
         $this->em->flush();
         $this->em->getConnection()->commit();
     } catch (\Exception $ex) {
         $this->em->getConnection()->rollback();
         $this->em->close();
         throw $ex;
     }
     return $user;
 }
Example #8
0
 function find($criteria = null, $order = null, $limit = 1000, $from = 0)
 {
     $result = $this->database->query($this->buildFindQuery($criteria, $order, $limit, $from));
     if (!is_null($result->getError())) {
         return $result->getError();
     }
     $users = array();
     while ($row = $result->fetchRow()) {
         $user = new User();
         $value = $row[0];
         $user->setId($value);
         $value = $row[1];
         $user->setUser($value);
         $value = $row[2];
         $user->setPassword($value);
         $value = $row[3];
         $value = $this->database->toBoolean($value);
         $user->setActive($value);
         $value = $row[4];
         $value = $this->database->toBoolean($value);
         $user->setAdmin($value);
         $value = $row[5];
         $user->setR_date($value);
         $value = $row[6];
         $user->setR_user($value);
         if ($order != null) {
             array_push($users, $user);
         } else {
             $users[$user->getId()] = $user;
         }
     }
     return $users;
 }
    }
    $this_user->setUsername($parms->getParm('username'));
    $this_user->setFullname($parms->getParm('fullname'));
    // check password matches
    if ($parms->getParm('newpassword') != $parms->getParm('repeatpassword')) {
        // in future should instead recreate form with rest of details readded
        header("Location: adduser.php?message=passwordmatch");
        exit(0);
    }
    $this_user->setPassword(md5($parms->getParm('newpassword')));
    $this_user->setAccess($parms->getParm('access'));
    $this_user->setEnabled($parms->getParm('status'));
    // expiry is a value in secs - no need to convert
    $this_user->setLoginexpiry($parms->getParm('loginexpiry'));
    $this_user->setSupervisor($parms->getParm('supervisor'));
    $this_user->setAdmin($parms->getParm('admin'));
    // save entry
    $kdb->insertUser($this_user);
    include "inc/dashboardheaders.php";
    print <<<EOT
{$header}
{$login_banner}
{$main_banner}
{$menu_banner}
{$main_menu}

<h1>New user added</h1>
<p>Click below to see all users.</p>
<p><a href="listusers.php">Dashboard - List Users</a></p>.
{$footer}
EOT;