| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- Lib::loadClass('RouteBase');
- Lib::loadClass('UserStorageFactory');
- Lib::loadClass('ProcesHelper');
- Lib::loadClass('SyncUsers');
- class Route_Users extends RouteBase {
- public function handleAuth() {
- if (!User::logged()) {
- throw new HttpException('Unauthorized', 401);
- }
- }
- public function defaultAction() {
- SE_Layout::gora();
- SE_Layout::menu();
- $this->menu();
- SE_Layout::dol();
- }
- public function menu() {
- $usrLogin = User::getLogin();
- ?>
- <ul>
- <li><a href="index.php?_route=Users&_task=syncUser&usrLogin=<?php echo $usrLogin; ?>">Sync user <?php echo $usrLogin; ?></a></li>
- </ul>
- <?php
- }
- public function syncUserAction() {
- SE_Layout::gora();
- SE_Layout::menu();
- $usrLogin = V::get('usrLogin', '', $_GET);
- echo '<div class="container">';
- try {
- if (empty($usrLogin)) throw new Exception("Empty user login");
- $usrStorageDB = UserStorageFactory::getStorage('DB');
- $usrStorageLdap = UserStorageFactory::getStorage('MacOSX');
- if (!$usrStorageDB) throw new Exception("Error storage DB not exists");
- if (!$usrStorageLdap) throw new Exception("Error storage Ldap not exists");
- echo '<h4>' . "Synchronizacja użytkownika <code>{$usrLogin}</code>" . '</h4>';
- $usrFrom = $usrStorageDB->getUser($usrLogin);
- DBG::_('DBG_SU', '>1', 'User from:', $usrFrom, __CLASS__, __FUNCTION__, __LINE__);
- if ($usrFrom) {
- $zasobPermsTblId = ProcesHelper::getZasobTableID('CRM_AUTH_PROFILE');
- if ($zasobPermsTblId > 0) {
- // TODO: ?_route=Users&_task=addGroup&usrLogin={$usrFrom->login}
- ?>
- <p>Ustal stanowisko:
- <a href="index.php?MENU_INIT=USER_ADD_GROUP&usrLogin=<?php echo $usrFrom->login; ?>">ustal stanowisko</a>
- </p>
- <?php
- }
- $zasobUsersTblId = ProcesHelper::getZasobTableID('ADMIN_USERS');
- if ($zasobUsersTblId > 0) {
- // /index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=4095#EDIT/4527
- ?>
- <p>Edytuj:
- <a href="index.php?MENU_INIT=VIEWTABLE_AJAX&ZASOB_ID=<?php echo $zasobUsersTblId; ?>#EDIT/<?php echo $usrFrom->primaryKey; ?>">edytuj</a>
- </p>
- <?php
- }
- }
- $this->syncUser($usrLogin, $usrStorageDB, $usrStorageLdap);
- } catch (Exception $e) {
- ?>
- <div class="alert alert-danger"><?php echo $e->getMessage(); ?></div>
- <?php
- }
- echo '</div>';// .container
- SE_Layout::dol();
- }
- public function syncUser($userName, $usrStorageDB, $usrStorageLdap) {
- if (empty($userName)) throw new Exception("Empty user login");
- if (!$usrStorageDB) throw new Exception("Error storage DB not exists");
- if (!$usrStorageLdap) throw new Exception("Error storage Ldap not exists");
- $synUsers = new SyncUsers($usrStorageDB, $usrStorageLdap);
- $syncTodoList = $synUsers->getSyncUserTodoList($userName, $syncGroups = true, $syncDisabled = true);
- ?>
- <?php if (empty($syncTodoList)) : ?>
- <div class="alert alert-info">Brak zadań do wykonania - użytkownik zsynchronizowany</div>
- <?php else : ?>
- <div class="well">
- <p>Lista zadań do wykonania:</p>
- <ul>
- <?php foreach ($syncTodoList as $vTask) : ?>
- <li><?php echo $vTask; ?></li>
- <?php endforeach; ?>
- </ul>
- </div>
- <?php endif; ?>
- <?php
- if ('1' == V::get('_runSync', '', $_POST)) {
- $synced = $synUsers->syncUser($userName, $syncGroups = true, $syncDisabled = true);
- if (!$synced) {
- ?>
- <div class="alert alert-danger">
- Nie udało się zsynchronizować uprawnień użytkownika <?php echo $userName; ?>.
- </div>
- <?php
- $errorsList = $synUsers->getErrorsMsgListWithDbg();
- if (!empty($errorsList)) {
- echo'<pre style="max-height:200px;overflow:auto;border:1px solid red;text-align:left;">';
- echo "Błędy:\n" . implode("\n", $errorsList);
- echo '</pre>';
- }
- }
- else {
- ?>
- <div class="alert alert-success">
- Synchronizacja uprawnień użytkownika <?php echo $userName; ?> zakończona powodzeniem.
- </div>
- <?php
- }
- }
- else {
- ?>
- <form action="" method="POST">
- <input type="hidden" name="_runSync" value="1">
- <input type="submit" value="Synchronizuj" class="btn btn-primary btn-big">
- </form>
- <?php
- }
- }
- }
|