Changeset 25237
- Timestamp:
- Oct 30, 2013, 1:54:46 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/include/add_core_tabs.inc.php
r25084 r25237 61 61 case 'comments': 62 62 $sheets[''] = array('caption' => l10n('User comments'), 'url' => ''); 63 break; 64 65 case 'users': 66 $sheets[''] = array('caption' => '<span class="icon-users"> </span>'.l10n('User list'), 'url' => ''); 63 67 break; 64 68 -
trunk/admin/themes/default/template/user_list.tpl
r25198 r25237 9 9 var selectedMessage_all = "{'All %d photos are selected'|@translate}"; 10 10 var applyOnDetails_pattern = "{'on the %d selected users'|@translate}"; 11 var newUser_pattern = "✔ {'User %s added'|translate}"; 11 12 var missingConfirm = "{'You need to confirm deletion'|translate}"; 13 var missingUsername = "{'Please, enter a login'|translate}"; 12 14 13 15 var allUsers = [{$all_users}]; … … 17 19 {footer_script}{literal} 18 20 jQuery(document).ready(function() { 21 /** 22 * Add user 23 */ 24 jQuery("#addUser").click(function() { 25 jQuery("#addUserForm").toggle(); 26 jQuery("#showAddUser .infos").hide(); 27 jQuery("input[name=username]").focus(); 28 return false; 29 }); 30 31 jQuery("#addUserClose").click(function() { 32 jQuery("#addUserForm").hide(); 33 return false; 34 }); 35 36 jQuery("#addUserForm").submit(function() { 37 jQuery.ajax({ 38 url: "ws.php?format=json&method=pwg.users.add", 39 type:"POST", 40 data: jQuery(this).serialize(), 41 beforeSend: function() { 42 jQuery("#addUserForm .errors").hide(); 43 44 if (jQuery("input[name=username]").val() == "") { 45 jQuery("#addUserForm .errors").html('✘ '+missingUsername).show(); 46 return false; 47 } 48 49 jQuery("#addUserForm .loading").show(); 50 }, 51 success:function(data) { 52 oTable.fnDraw(); 53 jQuery("#addUserForm .loading").hide(); 54 55 var data = jQuery.parseJSON(data); 56 if (data.stat == 'ok') { 57 jQuery("#addUserForm input[type=text], #addUserForm input[type=password]").val(""); 58 59 var new_user = data.result.users[0]; 60 allUsers.push(parseInt(new_user.id)); 61 jQuery("#showAddUser .infos").html(sprintf(newUser_pattern, new_user.username)).show(); 62 checkSelection(); 63 64 jQuery("#addUserForm").hide(); 65 } 66 else { 67 jQuery("#addUserForm .errors").html('✘ '+data.message).show(); 68 } 69 }, 70 error:function(XMLHttpRequest, textStatus, errorThrows) { 71 jQuery("#addUserForm .loading").hide(); 72 } 73 }); 74 75 return false; 76 }); 77 78 /** 79 * Table with users 80 */ 81 19 82 /* first column must be prefixed with the open/close icon */ 20 83 var aoColumns = [ … … 265 328 table.dataTable {clear:right;padding-top:10px;} 266 329 .bulkAction {margin-top:10px;} 267 .actionButtons {margin-left:0;} 268 #applyActionBlock .infos {background-image:none; padding:2px 5px; margin:0;border-radius:5px;} 330 #addUserForm p {margin-left:0;} 331 #applyActionBlock .actionButtons {margin-left:0;} 332 span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border-radius:5px;} 269 333 </style> 270 334 {/literal} … … 274 338 </div> 275 339 276 <form style="display:none" class="filter" method="post" name="add_user" action="{$F_ADD_ACTION}"> 340 <p class="showCreateAlbum" id="showAddUser"> 341 <a href="#" id="addUser">{'Add a user'|translate}</a> 342 <span class="infos" style="display:none"></span> 343 </p> 344 345 <form id="addUserForm" style="display:none" method="post" name="add_user" action="{$F_ADD_ACTION}"> 277 346 <fieldset> 278 347 <legend>{'Add a user'|@translate}</legend> 279 <label>{'Username'|@translate} <input type="text" name="login" maxlength="50" size="20"></label> 280 {if $Double_Password} 281 <label>{'Password'|@translate} <input type="password" name="password"></label> 282 <label>{'Confirm Password'|@translate} <input type="password" name="password_conf" id="password_conf"></label> 283 {else} 284 <label>{'Password'|@translate} <input type="text" name="password"></label> 285 {/if} 286 <label>{'Email address'|@translate} <input type="text" name="email"></label> 287 <label>{'Send connection settings by email'|@translate} <input type="checkbox" name="send_password_by_mail" value="1" checked="checked"></label> 288 <label> <input class="submit" type="submit" name="submit_add" value="{'Submit'|@translate}"></label> 348 349 <p> 350 <strong>{'Username'|translate}</strong><br> 351 <input type="text" name="username" maxlength="50" size="20"> 352 </p> 353 354 <p> 355 <strong>{'Password'|translate}</strong><br> 356 <input type="{if $Double_Password}password{else}text{/if}" name="password"> 357 </p> 358 359 {if $Double_Password} 360 <p> 361 <strong>{'Confirm Password'|@translate}</strong><br> 362 <input type="password" name="password_confirm"> 363 </p> 364 {/if} 365 366 <p> 367 <strong>{'Email address'|@translate}</strong><br> 368 <input type="text" name="email"> 369 </p> 370 371 <p> 372 <label><input type="checkbox" name="send_password_by_mail"> <strong>{'Send connection settings by email'|@translate}</strong></label> 373 </p> 374 375 <p class="actionButtons"> 376 <input class="submit" name="submit_add" type="submit" value="{'Submit'|@translate}"> 377 <a href="#" id="addUserClose">{'Cancel'|@translate}</a> 378 <span class="loading" style="display:none"><img src="themes/default/images/ajax-loader-small.gif"></span> 379 <span class="errors" style="display:none"></span> 380 </p> 289 381 </fieldset> 290 382 </form> -
trunk/admin/user_list.php
r25194 r25237 25 25 * Add users and manage users list 26 26 */ 27 28 // +-----------------------------------------------------------------------+ 29 // | tabs | 30 // +-----------------------------------------------------------------------+ 31 32 include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); 33 34 $my_base_url = get_root_url().'admin.php?page='; 35 36 $tabsheet = new tabsheet(); 37 $tabsheet->set_id('users'); 38 $tabsheet->select('user_list'); 39 $tabsheet->assign(); 27 40 28 41 // +-----------------------------------------------------------------------+ … … 74 87 'users' => $users, 75 88 'all_users' => join(',', $user_ids), 89 'Double_Password' => $conf['double_password_type_in_admin'] 76 90 ) 77 91 ); -
trunk/include/functions_user.inc.php
r25116 r25237 126 126 * @param string $password 127 127 * @param string $mail_adress 128 * @param bool $ with_notifications128 * @param bool $notify_admin 129 129 * @param &array $errors 130 * @param bool $notify_user 130 131 * @return int|bool 131 132 */ 132 function register_user($login, $password, $mail_address, 133 $with_notification = true, &$errors = array()) 133 function register_user($login, $password, $mail_address, $notify_admin=true, &$errors = array(), $notify_user=false) 134 134 { 135 135 global $conf; … … 170 170 } 171 171 172 $errors = trigger_event('register_user_check', 173 $errors, 174 array( 175 'username'=>$login, 176 'password'=>$password, 177 'email'=>$mail_address, 178 ) 179 ); 172 $errors = trigger_event( 173 'register_user_check', 174 $errors, 175 array( 176 'username'=>$login, 177 'password'=>$password, 178 'email'=>$mail_address, 179 ) 180 ); 180 181 181 182 // if no error until here, registration of the user 182 183 if (count($errors) == 0) 183 184 { 184 $insert = 185 array( 186 $conf['user_fields']['username'] => pwg_db_real_escape_string($login), 187 $conf['user_fields']['password'] => $conf['password_hash']($password), 188 $conf['user_fields']['email'] => $mail_address 189 ); 185 $insert = array( 186 $conf['user_fields']['username'] => pwg_db_real_escape_string($login), 187 $conf['user_fields']['password'] => $conf['password_hash']($password), 188 $conf['user_fields']['email'] => $mail_address 189 ); 190 190 191 191 single_insert(USERS_TABLE, $insert); … … 204 204 while ($row = pwg_db_fetch_assoc($result)) 205 205 { 206 207 208 206 $inserts[] = array( 207 'user_id' => $user_id, 208 'group_id' => $row['id'] 209 209 ); 210 210 } … … 216 216 217 217 $override = null; 218 if ($with_notification and $conf['browser_language']) 219 { 220 if ( !get_browser_language($override['language']) ) 218 if ($notify_admin and $conf['browser_language']) 219 { 220 if (!get_browser_language($override['language'])) 221 { 221 222 $override=null; 223 } 222 224 } 223 225 create_user_infos($user_id, $override); 224 226 225 if ($ with_notification and $conf['email_admin_on_new_user'])227 if ($notify_admin and $conf['email_admin_on_new_user']) 226 228 { 227 229 include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); 228 $admin_url = get_absolute_root_url() 229 .'admin.php?page=user_list&username='.$login; 230 231 $keyargs_content = array 232 ( 230 $admin_url = get_absolute_root_url().'admin.php?page=user_list&username='.$login; 231 232 $keyargs_content = array( 233 233 get_l10n_args('User: %s', stripslashes($login)), 234 234 get_l10n_args('Email: %s', $_POST['mail_address']), 235 235 get_l10n_args('', ''), 236 236 get_l10n_args('Admin: %s', $admin_url) 237 ); 238 239 pwg_mail_notification_admins 240 ( 237 ); 238 239 pwg_mail_notification_admins( 241 240 get_l10n_args('Registration of %s', stripslashes($login)), 242 241 $keyargs_content 243 ); 244 } 245 246 trigger_action('register_user', 242 ); 243 } 244 245 if ($notify_user and email_check_format($mail_address)) 246 { 247 include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); 248 249 $keyargs_content = array( 250 get_l10n_args('Hello %s,', $login), 251 get_l10n_args('Thank you for registering at %s!', $conf['gallery_title']), 252 get_l10n_args('', ''), 253 get_l10n_args('Here are your connection settings', ''), 254 get_l10n_args('Username: %s', $login), 255 get_l10n_args('Password: %s', $password), 256 get_l10n_args('Email: %s', $mail_address), 257 get_l10n_args('', ''), 258 get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()), 259 ); 260 261 pwg_mail( 262 $mail_address, 263 array( 264 'subject' => '['.$conf['gallery_title'].'] '.l10n('Registration'), 265 'content' => l10n_args($keyargs_content), 266 'content_format' => 'text/plain', 267 ) 268 ); 269 } 270 271 trigger_action( 272 'register_user', 247 273 array( 248 274 'id'=>$user_id, 249 275 'username'=>$login, 250 276 'email'=>$mail_address, 251 )277 ) 252 278 ); 253 279 -
trunk/include/ws_functions.inc.php
r25196 r25237 3562 3562 function ws_users_add($params, &$service) 3563 3563 { 3564 $user_id = register_user($params['username'], $params['password'], $params['email'], false, $errors); 3564 global $conf; 3565 3566 if ($conf['double_password_type_in_admin']) 3567 { 3568 if ($params['password'] != $params['password_confirm']) 3569 { 3570 return new PwgError(WS_ERR_INVALID_PARAM, l10n('The passwords do not match')); 3571 } 3572 } 3573 3574 $user_id = register_user( 3575 $params['username'], 3576 $params['password'], 3577 $params['email'], 3578 false, // notify admin 3579 $errors, 3580 $params['send_password_by_mail'] 3581 ); 3565 3582 3566 3583 if (!$user_id) -
trunk/register.php
r25121 r25237 61 61 } 62 62 63 register_user($_POST['login'], 64 $_POST['password'], 65 $_POST['mail_address'], 66 true, 67 $page['errors']); 63 register_user( 64 $_POST['login'], 65 $_POST['password'], 66 $_POST['mail_address'], 67 true, 68 $page['errors'], 69 isset($_POST['send_password_by_mail']) 70 ); 68 71 69 72 if (count($page['errors']) == 0) 70 73 { 71 74 // email notification 72 if (isset($_POST['send_password_by_mail']) and isset($_POST['mail_address']))75 if (isset($_POST['send_password_by_mail']) and email_check_format($_POST['mail_address'])) 73 76 { 74 include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');75 76 $keyargs_content = array(77 get_l10n_args('Hello %s,', $_POST['login']),78 get_l10n_args('Thank you for registering at %s!', $conf['gallery_title']),79 get_l10n_args('', ''),80 get_l10n_args('Here are your connection settings', ''),81 get_l10n_args('Username: %s', $_POST['login']),82 get_l10n_args('Password: %s', $_POST['password']),83 get_l10n_args('Email: %s', $_POST['mail_address']),84 get_l10n_args('', ''),85 get_l10n_args('If you think you\'ve received this email in error, please contact us at %s', get_webmaster_mail_address()),86 );87 88 pwg_mail(89 $_POST['mail_address'],90 array(91 'subject' => '['.$conf['gallery_title'].'] '.l10n('Registration'),92 'content' => l10n_args($keyargs_content),93 'content_format' => 'text/plain',94 )95 );96 97 77 $_SESSION['page_infos'][] = l10n('Successfully registered, you will soon receive an email with your connection settings. Welcome!'); 98 78 } -
trunk/ws.php
r25196 r25237 827 827 'username' => array(), 828 828 'password' => array('default'=>null), 829 'password_confirm' => array('flags'=>WS_PARAM_OPTIONAL), 829 830 'email' => array('default'=>null), 831 'send_password_by_mail' => array('default'=>false, 'type'=>WS_TYPE_BOOL), 830 832 ), 831 833 '<b>Admin & POST only.</b> Registers a new user.',
Note: See TracChangeset
for help on using the changeset viewer.