2 class User extends AppModel {
5 var $belongsTo = array('Group');
7 //The Associations below have been created with all possible keys, those that are not needed can be removed
10 'Attachment' => array(
11 'className' => 'Media.AttachmentEx',
12 'foreignKey' => 'foreign_key',
14 'conditions' => array('Attachment.model' => 'User'),
18 'Attachment.foreign_key',
20 'Attachment.basename',
21 'Attachment.alternative',
30 'className' => 'Character',
31 'foreignKey' => 'user_id',
33 'conditions' => array(
34 'Character.public_flag' => 'public',
35 'Character.deleted' => '0',
39 'Character.system_id',
42 'Character.main_picture',
43 'Character.public_flag',
48 'Character.modified' => 'DESC',
56 'add' => array('group_id', 'name', 'username', 'password', 'useragent', 'host'),
57 'edit' => array('name', 'url', 'notes'),
65 'rule' => array('url', true),
75 // other 'mobile_mail'
78 var $validate = array(
80 'maxLengthJP' => array(
81 'rule' => array('maxLengthJP', 64),
89 'rule' => array('isUnique'),
91 'betweenWrapper' => array(
92 'rule' => array('betweenUsername'),
94 'alphaNumeric' => array(
95 'rule' => 'alphaNumeric',
101 'password1' => array(
102 'betweenWrapper' => array(
103 'rule' => array('betweenPassword'),
105 'alphaNumeric' => array(
106 'rule' => 'alphaNumeric',
109 'rule' => 'notEmpty',
112 'password2' => array(
113 'compare2fields' => array(
114 'rule' => array('compare2fields', 'password1', false),
116 'alphaNumeric' => array(
117 'rule' => 'alphaNumeric',
120 'rule' => 'notEmpty',
124 'isUniquePcMail' => array(
125 'rule' => array('isUniquePcMail'),
128 'rule' => array('isPcMail'),
131 /* 'mobile_mail' => array(
133 'rule' => array('isUnique'),
139 function beforeValidate($options = array())
142 return parent::beforeValidate($options);
145 function beforeSave($options = array())
147 $result = parent::beforeSave($options);
148 if ($result === false) {
153 if (!empty($this->data['User']['notes'])) {
154 $this->data['User']['notes'] = str_replace(array("\n\r", '\n', "\r"), '<br />', $this->data['User']['notes']);
159 function afterSave($created) {
160 $this->deleteCache4User();
162 return parent::afterSave($created);
164 function afterDelete() {
165 $this->deleteCache4User();
167 return parent::afterDelete();
172 function betweenUsername($data)
174 $idLength = Configure::read('User.UserId.Length');
175 return self::betweenWrapper($data, $idLength);
178 function betweenPassword($data)
180 $idLength = Configure::read('User.Password.Length');
181 return self::betweenWrapper($data, $idLength);
184 function betweenWrapper($data, $idLength)
186 $check = array_values($data);
188 return parent::betweenWrapper($check[0], $idLength['min'], $idLength['max']);
192 function deleteCache4User()
195 $this->deleteCacheMyData();
197 $this->deleteCacheHome();
198 $this->deleteCacheUser($this->id);