2erlei/app/modules/user/model.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&auml;lliges Passwort generieren
*
* Ausgehend von der Systemzeit wird ein 6 Zeichen langer String erzeugt,
* der als vor&uuml;bergehendes Passwort verwendet werden kann.
*
* @return string zuf&auml;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;
}
}
?>