add-user.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief окно добавления нового пользователя
6  */
7 
8 isset($user) or require $_SERVER['DOCUMENT_ROOT'] . '/page/404.php';
9 
10 ?>
11 <div class="modal fade" id="<?= $basename ?>" tabindex="-1" data-backdrop="static" data-keyboard="false">
12  <div class="modal-dialog modal-lg modal-lg modal-dialog-centered" role="document">
13  <div class="modal-content">
14  <div class="modal-header">
15  <h5 class="modal-title"><i class="fa fa-user mr-2"></i>Добавить пользователя</h5>
16  <button type="button" class="close" data-dismiss="modal" aria-label="Close">
17  <span aria-hidden="true">&times;</span>
18  </button>
19  </div>
20  <div class="modal-body pt-2">
21  <form action="<?= Wrong\Models\Actions::find(20)->request ?>">
22  <div class="border px-2 py-1 rounded bg-light-info">
23  <small>Группы доступа <a onclick="if(~~this.dataset.checked){$(this).html('отметить все');this.dataset.checked=0;$(this).parents('form').find('[name^=groups]').prop('checked', false);}else{$(this).html('снять все');this.dataset.checked=1;$(this).parents('form').find('[name^=groups]').prop('checked', true);}return false;" href="#">отметить все</a></small>
24  <?php
25  foreach ($user->subordinate_groups as $id) {
26  $row = Wrong\Rights\Group::row($id);
27  echo '<div class="custom-control custom-checkbox small">
28  <input type="checkbox" name="groups[' . $row->id . ']" class="custom-control-input" id="check-group-' . $row->id . '" ' . (in_array($row->id, Wrong\Start\Env::$e->GROUPS_USERS) ? 'checked' : '') . '>
29  <label class="custom-control-label" for="check-group-' . $row->id . '">' . Wrong\Rights\Group::text($row->id) . '</label>
30  </div>';
31  }
32  ?>
33  </div>
34  <div class="input-group input-group-sm mt-2">
35  <div class="input-group-prepend w-50">
36  <span class="input-group-text w-100">Группа владелец</span>
37  </div>
38  <select name="owner_group" class="custom-select">
39  <?php
40  foreach ($user->subordinate_groups as $id) {
41  $row = Wrong\Rights\Group::row($id);
42  echo '<option value="' . $row->id . '" ' . ($row->id == Wrong\Start\Env::$e->OWNER_GROUP_USERS ? ' selected' : '') . '>' . Wrong\Rights\Group::text($row->id) . '</option>';
43  }
44  ?>
45  </select>
46  </div>
47  <div class="input-group input-group-sm mt-2">
48  <div class="input-group-prepend w-50">
49  <span class="input-group-text w-100">Email</span>
50  </div>
51  <input type="email" name="email" class="form-control" value="" placeholder="Email" autocomplete="off" required>
52  </div>
53  <div class="input-group input-group-sm mt-2">
54  <div class="input-group-prepend w-50">
55  <span class="input-group-text w-100">Пароль</span>
56  </div>
57  <input type="text" name="password" class="form-control" value="" placeholder="Пароль" autocomplete="off" required>
58  </div>
59  <button type="submit" class="btn btn-sm btn-block btn-success mt-3">Сохранить</button>
60  </form>
61  </div>
62  </div>
63  </div>
64  <script>
65  $("#<?= $basename ?> form").submit(function(e) {
66  lockSubmit($("#<?= $basename ?> form [type=submit]"));
67  e.preventDefault();
68  $.ajax({
69  type: "POST",
70  url: $(this).attr("action"),
71  data: $(this).serialize(),
72  dataType: "json",
73  statusCode: {
74  404: errorToast,
75  403: errorToast
76  }
77  })
78  .done(response => {
79  if (response.error) {
80  errorToast(response.error);
81  return;
82  }
83  $('.dataTable').DataTable().ajax.reload(null, false);
84  $('.toast').toast('hide');
85  successToast(response.message);
86  $("#<?= $basename ?>").modal("hide");
87  })
88  .always(() => {
89  unlockSubmit($("#<?= $basename ?> form [type=submit]"));
90  });
91  });
92 
93  $('#<?= $basename ?> [name="password"]').val(Math.random().toString(36).slice(2, 10));
94 
95  $('#<?= $basename ?> [name="password"]').click(function(e) {
96  $(this).select();
97  document.execCommand('copy', false);
98  });
99 
100  $('#<?= $basename ?> [name="password"]').on('copy', function(e) {
101  successToast('Пароль скопирован');
102  });
103 
104  $('#<?= $basename ?> [name="email"]').val(Math.random().toString(36).slice(2, 10) + '@' + document.domain);
105  </script>
106 </div>
static row($id)
Definition: Group.php:245
static $e
Definition: Env.php:22
$user
Definition: from-user.php:38
setcookie('FROM_UID', $uid, [ 'expires'=> time()+31536000, 'path'=> '/', 'domain'=> $_SERVER['HTTP_HOST'], 'secure'=> Wrong\Start\Env::$e->IS_SECURE, 'httponly'=> false, 'samesite'=> Wrong\Start\Env::$e->IS_SECURE ? 'None' :'Lax']) or setcookie('FROM_UID' $_SERVER['HTTP_HOST']
Definition: from-user.php:36
href
Definition: main.php:21