114 lines
2.9 KiB
PHP
114 lines
2.9 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* user-model
|
||
|
*
|
||
|
* Enthält die Basisfunktionen von user.
|
||
|
*
|
||
|
* Klasse user_model
|
||
|
*
|
||
|
* @package baseContent
|
||
|
* @subpackage user
|
||
|
*/
|
||
|
class app_user_model extends fl_model {
|
||
|
/**
|
||
|
* Prüfung, ob bereits ein Benutzer mit diesem Namen existiert
|
||
|
*
|
||
|
* @param string $name
|
||
|
* @return bool
|
||
|
*/
|
||
|
function doesnt_exist($name) {
|
||
|
$result = $this->datamodel->retrieve('user', 'COUNT(*) AS anzahl', "name = '".$name."'");
|
||
|
$doesnt_exist = ( $result['anzahl'] == 0 )? TRUE: FALSE;
|
||
|
return $doesnt_exist;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Ein zufälliges Passwort generieren
|
||
|
*
|
||
|
* Ausgehend von der Systemzeit wird ein 6 Zeichen langer String erzeugt,
|
||
|
* der als vorübergehendes Passwort verwendet werden kann.
|
||
|
*
|
||
|
* @return string zufälliges Passwort
|
||
|
*/
|
||
|
function generate_PW() {
|
||
|
$pass = substr(md5(uniqid(microtime())), 0, 6);
|
||
|
return $pass;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Neues Benutzerprofil anlegen
|
||
|
*
|
||
|
* @param array $data
|
||
|
* @return bool
|
||
|
*/
|
||
|
function create_user($data) {
|
||
|
$db_data = array(
|
||
|
'name'=>$data['name'],
|
||
|
'email'=>$data['mail'],
|
||
|
'password'=>md5($data['password1'])
|
||
|
);
|
||
|
|
||
|
$create_user = ( $this->datamodel->create('user', $db_data) )? TRUE: FALSE;
|
||
|
|
||
|
return $create_user;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Benutzerdaten speichern
|
||
|
*
|
||
|
* Die Benutzerdaten werden gespeichert. Wenn ein Password angegeben wurde,
|
||
|
* wird es MD5-Codiert.
|
||
|
*
|
||
|
* @param array $data
|
||
|
* @param int $user
|
||
|
* @return bool
|
||
|
*/
|
||
|
function update_user($data, $user) {
|
||
|
$db_data = $data;
|
||
|
if ( isset($data['password1']) ) $db_data['password'] = md5($data['password1']);
|
||
|
unset($db_data['password1'], $db_data['password2']);
|
||
|
|
||
|
$update_user = ( $this->datamodel->update('user', $db_data, $user) )? TRUE: FALSE;
|
||
|
return $update_user;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Benutzerdaten per mail verschicken
|
||
|
*
|
||
|
* @param string $name Benutzername
|
||
|
* @param string $password
|
||
|
* @return mixed
|
||
|
*/
|
||
|
function notify_user($name, $password='') {
|
||
|
$result = $this->datamodel->retrieve('user', 'email', "name = '".$name."'", '', '1');
|
||
|
$mailadresse = $result['email'];
|
||
|
|
||
|
unset($result);
|
||
|
$result = $this->datamodel->retrieve('basecontent_options', 'value', 'optionname="SEITENTITEL"', '', '1');
|
||
|
$seitentitel = $result['value'];
|
||
|
|
||
|
$data['name'] = $name;
|
||
|
$data['password'] = ( $password == '' )? 'Das Passwort wurde nicht verändert.': $password;
|
||
|
|
||
|
$this->functions->needs('mail');
|
||
|
$m = new e_mail();
|
||
|
|
||
|
$to = $mailadresse;
|
||
|
$from = 'basecontent@'.$_SERVER['HTTP_HOST'];
|
||
|
$topic = '['.$seitentitel.'] Benutzeraccount freigeschaltet';
|
||
|
$template = file_get_contents( $this->modulepath . 'user/views/notify.tpl');
|
||
|
|
||
|
$text = $m->parse_template($template, $data);
|
||
|
|
||
|
$m->set_config($to, $from, $topic);
|
||
|
$m->set_text($text);
|
||
|
$m->compose_message();
|
||
|
|
||
|
$notify_user = $m->send_mail();
|
||
|
if (!$notify_user) $notify_user = $m->get_error();
|
||
|
|
||
|
return $notify_user;
|
||
|
}
|
||
|
}
|
||
|
?>
|