コード例 #1
0
ファイル: Controller.php プロジェクト: rjsmelo/tiki
 private function removeUsers(array $users, $page = false, $trackerIds = [], $files = false)
 {
     global $user;
     foreach ($users as $deleteuser) {
         if ($deleteuser != 'admin') {
             // remove the user's objects, wiki page first
             if ($page) {
                 global $prefs;
                 $page = $prefs['feature_wiki_userpage_prefix'] . $deleteuser;
                 Services_Exception_Denied::checkObject('remove', 'wiki page', $page);
                 $tikilib = TikiLib::lib('tiki');
                 $res = $tikilib->remove_all_versions($page);
                 if ($res !== true) {
                     throw new Services_Exception_NotFound(tr('An error occurred. User %0 could not be deleted', $deleteuser));
                 }
             }
             // then tracker items "owner" by the user
             if (!empty($trackerIds)) {
                 $trklib = TikiLib::lib('trk');
                 $items = $trklib->get_user_items($deleteuser, false);
                 foreach ($items as $item) {
                     if (in_array($item['trackerId'], $trackerIds)) {
                         $trklib->remove_tracker_item($item['itemId'], true);
                     }
                 }
             }
             // then tracker items "owner" by the user
             if ($files) {
                 $filegallib = TikiLib::lib('filegal');
                 $galleryId = $filegallib->get_user_file_gallery($deleteuser);
                 if ($galleryId) {
                     $filegallib->remove_file_gallery($galleryId);
                 }
             }
             // and finally remove the actual user (and other associated data)
             $res = $this->lib->remove_user($deleteuser);
             if ($res === true) {
                 $logslib = TikiLib::lib('logs');
                 $logslib->add_log('adminusers', sprintf(tra('Deleted account %s'), $deleteuser), $user);
             } else {
                 throw new Services_Exception_NotFound(tr('An error occurred. User %0 could not be deleted', $deleteuser));
             }
         }
     }
     return true;
 }