1*96de5490SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*96de5490SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*96de5490SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*96de5490SAndrew Rist * distributed with this work for additional information 6*96de5490SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*96de5490SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*96de5490SAndrew Rist * "License"); you may not use this file except in compliance 9*96de5490SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*96de5490SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*96de5490SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*96de5490SAndrew Rist * software distributed under the License is distributed on an 15*96de5490SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*96de5490SAndrew Rist * KIND, either express or implied. See the License for the 17*96de5490SAndrew Rist * specific language governing permissions and limitations 18*96de5490SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*96de5490SAndrew Rist *************************************************************/ 21*96de5490SAndrew Rist 22*96de5490SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_dbaccess.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #ifndef DBAUI_USERADMIN_HXX 28cdf0e10cSrcweir #include "UserAdmin.hxx" 29cdf0e10cSrcweir #endif 30cdf0e10cSrcweir #ifndef DBAUI_USERADMIN_HRC 31cdf0e10cSrcweir #include "UserAdmin.hrc" 32cdf0e10cSrcweir #endif 33cdf0e10cSrcweir #ifndef DBAUI_TOOLS_HXX 34cdf0e10cSrcweir #include "UITools.hxx" 35cdf0e10cSrcweir #endif 36cdf0e10cSrcweir #ifndef _DBU_DLG_HRC_ 37cdf0e10cSrcweir #include "dbu_dlg.hrc" 38cdf0e10cSrcweir #endif 39cdf0e10cSrcweir #ifndef _COMPHELPER_TYPES_HXX_ 40cdf0e10cSrcweir #include <comphelper/types.hxx> 41cdf0e10cSrcweir #endif 42cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_ 43cdf0e10cSrcweir #include <com/sun/star/sdbc/XDatabaseMetaData.hpp> 44cdf0e10cSrcweir #endif 45cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBCX_XDATADEFINITIONSUPPLIER_HPP_ 46cdf0e10cSrcweir #include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp> 47cdf0e10cSrcweir #endif 48cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBCX_XUSERSSUPPLIER_HPP_ 49cdf0e10cSrcweir #include <com/sun/star/sdbcx/XUsersSupplier.hpp> 50cdf0e10cSrcweir #endif 51cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBCX_XDROP_HPP_ 52cdf0e10cSrcweir #include <com/sun/star/sdbcx/XDrop.hpp> 53cdf0e10cSrcweir #endif 54cdf0e10cSrcweir #ifndef _UCBHELPER_INTERATIONREQUEST_HXX 55cdf0e10cSrcweir #include <ucbhelper/interactionrequest.hxx> 56cdf0e10cSrcweir #endif 57cdf0e10cSrcweir #ifndef _UCBHELPER_SIMPLEAUTHENTICATIONREQUEST_HXX 58cdf0e10cSrcweir #include <ucbhelper/simpleauthenticationrequest.hxx> 59cdf0e10cSrcweir #endif 60cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBCX_XDATADESCRIPTORFACTORY_HPP_ 61cdf0e10cSrcweir #include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp> 62cdf0e10cSrcweir #endif 63cdf0e10cSrcweir #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_ 64cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp> 65cdf0e10cSrcweir #endif 66cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBCX_XUSER_HPP_ 67cdf0e10cSrcweir #include <com/sun/star/sdbcx/XUser.hpp> 68cdf0e10cSrcweir #endif 69cdf0e10cSrcweir #ifndef _COM_SUN_STAR_SDBCX_XAPPEND_HPP_ 70cdf0e10cSrcweir #include <com/sun/star/sdbcx/XAppend.hpp> 71cdf0e10cSrcweir #endif 72cdf0e10cSrcweir #ifndef DBACCESS_SHARED_DBUSTRINGS_HRC 73cdf0e10cSrcweir #include "dbustrings.hrc" 74cdf0e10cSrcweir #endif 75cdf0e10cSrcweir #ifndef _TOOLS_DEBUG_HXX 76cdf0e10cSrcweir #include <tools/debug.hxx> 77cdf0e10cSrcweir #endif 78cdf0e10cSrcweir #ifndef _DBAUI_DBADMIN_HXX_ 79cdf0e10cSrcweir #include "dbadmin.hxx" 80cdf0e10cSrcweir #endif 81cdf0e10cSrcweir #ifndef _DBAUI_MODULE_DBU_HXX_ 82cdf0e10cSrcweir #include "moduledbu.hxx" 83cdf0e10cSrcweir #endif 84cdf0e10cSrcweir #ifndef _SV_MSGBOX_HXX 85cdf0e10cSrcweir #include <vcl/msgbox.hxx> 86cdf0e10cSrcweir #endif 87cdf0e10cSrcweir #ifndef _SFX_PASSWD_HXX 88cdf0e10cSrcweir #include <sfx2/passwd.hxx> 89cdf0e10cSrcweir #endif 90cdf0e10cSrcweir 91cdf0e10cSrcweir using namespace ::com::sun::star::container; 92cdf0e10cSrcweir using namespace ::com::sun::star::beans; 93cdf0e10cSrcweir using namespace ::com::sun::star::sdbcx; 94cdf0e10cSrcweir using namespace ::com::sun::star::sdbc; 95cdf0e10cSrcweir using namespace ::com::sun::star::uno; 96cdf0e10cSrcweir using namespace ::com::sun::star::task; 97cdf0e10cSrcweir using namespace dbaui; 98cdf0e10cSrcweir using namespace ucbhelper; 99cdf0e10cSrcweir using namespace comphelper; 100cdf0e10cSrcweir 101cdf0e10cSrcweir 102cdf0e10cSrcweir class OPasswordDialog : public ModalDialog 103cdf0e10cSrcweir { 104cdf0e10cSrcweir FixedLine aFLUser; 105cdf0e10cSrcweir FixedText aFTOldPassword; 106cdf0e10cSrcweir Edit aEDOldPassword; 107cdf0e10cSrcweir FixedText aFTPassword; 108cdf0e10cSrcweir Edit aEDPassword; 109cdf0e10cSrcweir FixedText aFTPasswordRepeat; 110cdf0e10cSrcweir Edit aEDPasswordRepeat; 111cdf0e10cSrcweir OKButton aOKBtn; 112cdf0e10cSrcweir CancelButton aCancelBtn; 113cdf0e10cSrcweir HelpButton aHelpBtn; 114cdf0e10cSrcweir 115cdf0e10cSrcweir 116cdf0e10cSrcweir DECL_LINK( OKHdl_Impl, OKButton * ); 117cdf0e10cSrcweir DECL_LINK( ModifiedHdl, Edit * ); 118cdf0e10cSrcweir 119cdf0e10cSrcweir public: 120cdf0e10cSrcweir OPasswordDialog( Window* pParent,const String& _sUserName); 121cdf0e10cSrcweir 122cdf0e10cSrcweir String GetOldPassword() const { return aEDOldPassword.GetText(); } 123cdf0e10cSrcweir String GetNewPassword() const { return aEDPassword.GetText(); } 124cdf0e10cSrcweir }; 125cdf0e10cSrcweir 126cdf0e10cSrcweir OPasswordDialog::OPasswordDialog(Window* _pParent,const String& _sUserName) : 127cdf0e10cSrcweir 128cdf0e10cSrcweir ModalDialog( _pParent, ModuleRes( DLG_PASSWORD) ), 129cdf0e10cSrcweir 130cdf0e10cSrcweir aFLUser ( this, ModuleRes( FL_USER ) ), 131cdf0e10cSrcweir aFTOldPassword ( this, ModuleRes( FT_OLDPASSWORD ) ), 132cdf0e10cSrcweir aEDOldPassword ( this, ModuleRes( ED_OLDPASSWORD ) ), 133cdf0e10cSrcweir aFTPassword ( this, ModuleRes( FT_PASSWORD ) ), 134cdf0e10cSrcweir aEDPassword ( this, ModuleRes( ED_PASSWORD ) ), 135cdf0e10cSrcweir aFTPasswordRepeat ( this, ModuleRes( FT_PASSWORD_REPEAT ) ), 136cdf0e10cSrcweir aEDPasswordRepeat ( this, ModuleRes( ED_PASSWORD_REPEAT ) ), 137cdf0e10cSrcweir aOKBtn ( this, ModuleRes( BTN_PASSWORD_OK ) ), 138cdf0e10cSrcweir aCancelBtn ( this, ModuleRes( BTN_PASSWORD_CANCEL ) ), 139cdf0e10cSrcweir aHelpBtn ( this, ModuleRes( BTN_PASSWORD_HELP ) ) 140cdf0e10cSrcweir { 141cdf0e10cSrcweir // hide until a help is avalable 142cdf0e10cSrcweir aHelpBtn.Hide(); 143cdf0e10cSrcweir 144cdf0e10cSrcweir FreeResource(); 145cdf0e10cSrcweir String sUser = aFLUser.GetText(); 146cdf0e10cSrcweir sUser.SearchAndReplaceAscii("$name$: $",_sUserName); 147cdf0e10cSrcweir aFLUser.SetText(sUser); 148cdf0e10cSrcweir aOKBtn.Disable(); 149cdf0e10cSrcweir 150cdf0e10cSrcweir aOKBtn.SetClickHdl( LINK( this, OPasswordDialog, OKHdl_Impl ) ); 151cdf0e10cSrcweir aEDOldPassword.SetModifyHdl( LINK( this, OPasswordDialog, ModifiedHdl ) ); 152cdf0e10cSrcweir } 153cdf0e10cSrcweir // ----------------------------------------------------------------------------- 154cdf0e10cSrcweir IMPL_LINK( OPasswordDialog, OKHdl_Impl, OKButton *, EMPTYARG ) 155cdf0e10cSrcweir { 156cdf0e10cSrcweir if( aEDPassword.GetText() == aEDPasswordRepeat.GetText() ) 157cdf0e10cSrcweir EndDialog( RET_OK ); 158cdf0e10cSrcweir else 159cdf0e10cSrcweir { 160cdf0e10cSrcweir String aErrorMsg( ModuleRes( STR_ERROR_PASSWORDS_NOT_IDENTICAL)); 161cdf0e10cSrcweir ErrorBox aErrorBox( this, WB_OK, aErrorMsg ); 162cdf0e10cSrcweir aErrorBox.Execute(); 163cdf0e10cSrcweir aEDPassword.SetText( String() ); 164cdf0e10cSrcweir aEDPasswordRepeat.SetText( String() ); 165cdf0e10cSrcweir aEDPassword.GrabFocus(); 166cdf0e10cSrcweir } 167cdf0e10cSrcweir return 0; 168cdf0e10cSrcweir } 169cdf0e10cSrcweir // ----------------------------------------------------------------------------- 170cdf0e10cSrcweir IMPL_LINK( OPasswordDialog, ModifiedHdl, Edit *, pEdit ) 171cdf0e10cSrcweir { 172cdf0e10cSrcweir aOKBtn.Enable(pEdit->GetText().Len() != 0); 173cdf0e10cSrcweir return 0; 174cdf0e10cSrcweir } 175cdf0e10cSrcweir 176cdf0e10cSrcweir DBG_NAME(OUserAdmin); 177cdf0e10cSrcweir //================================================================================ 178cdf0e10cSrcweir // OUserAdmin 179cdf0e10cSrcweir //================================================================================ 180cdf0e10cSrcweir OUserAdmin::OUserAdmin(Window* pParent,const SfxItemSet& _rAttrSet) 181cdf0e10cSrcweir : OGenericAdministrationPage( pParent, ModuleRes(TAB_PAGE_USERADMIN), _rAttrSet) 182cdf0e10cSrcweir ,m_FL_USER( this , ModuleRes(FL_USER)) 183cdf0e10cSrcweir ,m_FT_USER( this , ModuleRes(FT_USER)) 184cdf0e10cSrcweir ,m_LB_USER( this , ModuleRes(LB_USER)) 185cdf0e10cSrcweir ,m_PB_NEWUSER( this , ModuleRes(PB_NEWUSER)) 186cdf0e10cSrcweir ,m_PB_CHANGEPWD( this , ModuleRes(PB_CHANGEPWD)) 187cdf0e10cSrcweir ,m_PB_DELETEUSER( this , ModuleRes(PB_DELETEUSER)) 188cdf0e10cSrcweir ,m_FL_TABLE_GRANTS( this , ModuleRes(FL_TABLE_GRANTS)) 189cdf0e10cSrcweir ,m_TableCtrl( this , ModuleRes(CTRL_TABLE_GRANTS)) 190cdf0e10cSrcweir { 191cdf0e10cSrcweir DBG_CTOR(OUserAdmin,NULL); 192cdf0e10cSrcweir m_LB_USER.SetSelectHdl(LINK(this, OUserAdmin, ListDblClickHdl)); 193cdf0e10cSrcweir 194cdf0e10cSrcweir m_PB_NEWUSER.SetClickHdl(LINK(this, OUserAdmin, UserHdl)); 195cdf0e10cSrcweir m_PB_CHANGEPWD.SetClickHdl(LINK(this, OUserAdmin, UserHdl)); 196cdf0e10cSrcweir m_PB_DELETEUSER.SetClickHdl(LINK(this, OUserAdmin, UserHdl)); 197cdf0e10cSrcweir 198cdf0e10cSrcweir FreeResource(); 199cdf0e10cSrcweir } 200cdf0e10cSrcweir // ----------------------------------------------------------------------- 201cdf0e10cSrcweir OUserAdmin::~OUserAdmin() 202cdf0e10cSrcweir { 203cdf0e10cSrcweir DBG_DTOR(OUserAdmin,NULL); 204cdf0e10cSrcweir m_xConnection = NULL; 205cdf0e10cSrcweir } 206cdf0e10cSrcweir // ----------------------------------------------------------------------- 207cdf0e10cSrcweir void OUserAdmin::FillUserNames() 208cdf0e10cSrcweir { 209cdf0e10cSrcweir if(m_xConnection.is()) 210cdf0e10cSrcweir { 211cdf0e10cSrcweir m_LB_USER.Clear(); 212cdf0e10cSrcweir 213cdf0e10cSrcweir Reference<XDatabaseMetaData> xMetaData = m_xConnection->getMetaData(); 214cdf0e10cSrcweir 215cdf0e10cSrcweir if ( xMetaData.is() ) 216cdf0e10cSrcweir { 217cdf0e10cSrcweir m_UserName = xMetaData->getUserName(); 218cdf0e10cSrcweir 219cdf0e10cSrcweir // first we need the users 220cdf0e10cSrcweir if ( m_xUsers.is() ) 221cdf0e10cSrcweir { 222cdf0e10cSrcweir m_LB_USER.Clear(); 223cdf0e10cSrcweir 224cdf0e10cSrcweir m_aUserNames = m_xUsers->getElementNames(); 225cdf0e10cSrcweir const ::rtl::OUString* pBegin = m_aUserNames.getConstArray(); 226cdf0e10cSrcweir const ::rtl::OUString* pEnd = pBegin + m_aUserNames.getLength(); 227cdf0e10cSrcweir ::rtl::OUString sUserName = m_UserName; 228cdf0e10cSrcweir for(;pBegin != pEnd;++pBegin) 229cdf0e10cSrcweir m_LB_USER.InsertEntry(*pBegin); 230cdf0e10cSrcweir 231cdf0e10cSrcweir m_LB_USER.SelectEntryPos(0); 232cdf0e10cSrcweir if(m_xUsers->hasByName(m_UserName)) 233cdf0e10cSrcweir { 234cdf0e10cSrcweir Reference<XAuthorizable> xAuth; 235cdf0e10cSrcweir m_xUsers->getByName(m_UserName) >>= xAuth; 236cdf0e10cSrcweir m_TableCtrl.setGrantUser(xAuth); 237cdf0e10cSrcweir } 238cdf0e10cSrcweir 239cdf0e10cSrcweir m_TableCtrl.setUserName(GetUser()); 240cdf0e10cSrcweir m_TableCtrl.Init(); 241cdf0e10cSrcweir } 242cdf0e10cSrcweir } 243cdf0e10cSrcweir } 244cdf0e10cSrcweir 245cdf0e10cSrcweir Reference<XAppend> xAppend(m_xUsers,UNO_QUERY); 246cdf0e10cSrcweir m_PB_NEWUSER.Enable(xAppend.is()); 247cdf0e10cSrcweir Reference<XDrop> xDrop(m_xUsers,UNO_QUERY); 248cdf0e10cSrcweir m_PB_DELETEUSER.Enable(xDrop.is()); 249cdf0e10cSrcweir 250cdf0e10cSrcweir m_PB_CHANGEPWD.Enable(m_xUsers.is()); 251cdf0e10cSrcweir m_TableCtrl.Enable(m_xUsers.is()); 252cdf0e10cSrcweir 253cdf0e10cSrcweir } 254cdf0e10cSrcweir // ----------------------------------------------------------------------- 255cdf0e10cSrcweir SfxTabPage* OUserAdmin::Create( Window* pParent, const SfxItemSet& _rAttrSet ) 256cdf0e10cSrcweir { 257cdf0e10cSrcweir return ( new OUserAdmin( pParent, _rAttrSet ) ); 258cdf0e10cSrcweir } 259cdf0e10cSrcweir // ----------------------------------------------------------------------- 260cdf0e10cSrcweir IMPL_LINK( OUserAdmin, UserHdl, PushButton *, pButton ) 261cdf0e10cSrcweir { 262cdf0e10cSrcweir try 263cdf0e10cSrcweir { 264cdf0e10cSrcweir if(pButton == &m_PB_NEWUSER) 265cdf0e10cSrcweir { 266cdf0e10cSrcweir SfxPasswordDialog aPwdDlg(this); 267cdf0e10cSrcweir aPwdDlg.ShowExtras(SHOWEXTRAS_ALL); 268cdf0e10cSrcweir if(aPwdDlg.Execute()) 269cdf0e10cSrcweir { 270cdf0e10cSrcweir Reference<XDataDescriptorFactory> xUserFactory(m_xUsers,UNO_QUERY); 271cdf0e10cSrcweir Reference<XPropertySet> xNewUser = xUserFactory->createDataDescriptor(); 272cdf0e10cSrcweir if(xNewUser.is()) 273cdf0e10cSrcweir { 274cdf0e10cSrcweir xNewUser->setPropertyValue(PROPERTY_NAME,makeAny(rtl::OUString(aPwdDlg.GetUser()))); 275cdf0e10cSrcweir xNewUser->setPropertyValue(PROPERTY_PASSWORD,makeAny(rtl::OUString(aPwdDlg.GetPassword()))); 276cdf0e10cSrcweir Reference<XAppend> xAppend(m_xUsers,UNO_QUERY); 277cdf0e10cSrcweir if(xAppend.is()) 278cdf0e10cSrcweir xAppend->appendByDescriptor(xNewUser); 279cdf0e10cSrcweir } 280cdf0e10cSrcweir } 281cdf0e10cSrcweir } 282cdf0e10cSrcweir else if(pButton == &m_PB_CHANGEPWD) 283cdf0e10cSrcweir { 284cdf0e10cSrcweir String sName = GetUser(); 285cdf0e10cSrcweir 286cdf0e10cSrcweir if(m_xUsers->hasByName(sName)) 287cdf0e10cSrcweir { 288cdf0e10cSrcweir Reference<XUser> xUser; 289cdf0e10cSrcweir m_xUsers->getByName(sName) >>= xUser; 290cdf0e10cSrcweir if(xUser.is()) 291cdf0e10cSrcweir { 292cdf0e10cSrcweir ::rtl::OUString sNewPassword,sOldPassword; 293cdf0e10cSrcweir OPasswordDialog aDlg(this,sName); 294cdf0e10cSrcweir if(aDlg.Execute() == RET_OK) 295cdf0e10cSrcweir { 296cdf0e10cSrcweir sNewPassword = aDlg.GetNewPassword(); 297cdf0e10cSrcweir sOldPassword = aDlg.GetOldPassword(); 298cdf0e10cSrcweir 299cdf0e10cSrcweir if(sNewPassword.getLength()) 300cdf0e10cSrcweir xUser->changePassword(sOldPassword,sNewPassword); 301cdf0e10cSrcweir } 302cdf0e10cSrcweir } 303cdf0e10cSrcweir } 304cdf0e10cSrcweir } 305cdf0e10cSrcweir else 306cdf0e10cSrcweir {// delete user 307cdf0e10cSrcweir if(m_xUsers.is() && m_xUsers->hasByName(GetUser())) 308cdf0e10cSrcweir { 309cdf0e10cSrcweir Reference<XDrop> xDrop(m_xUsers,UNO_QUERY); 310cdf0e10cSrcweir if(xDrop.is()) 311cdf0e10cSrcweir { 312cdf0e10cSrcweir QueryBox aQry(this, ModuleRes(QUERY_USERADMIN_DELETE_USER)); 313cdf0e10cSrcweir if(aQry.Execute() == RET_YES) 314cdf0e10cSrcweir xDrop->dropByName(GetUser()); 315cdf0e10cSrcweir } 316cdf0e10cSrcweir } 317cdf0e10cSrcweir } 318cdf0e10cSrcweir FillUserNames(); 319cdf0e10cSrcweir } 320cdf0e10cSrcweir catch(SQLException& e) 321cdf0e10cSrcweir { 322cdf0e10cSrcweir ::dbaui::showError(::dbtools::SQLExceptionInfo(e),this,m_xORB); 323cdf0e10cSrcweir return 0; 324cdf0e10cSrcweir } 325cdf0e10cSrcweir catch(Exception& ) 326cdf0e10cSrcweir { 327cdf0e10cSrcweir return 0; 328cdf0e10cSrcweir } 329cdf0e10cSrcweir 330cdf0e10cSrcweir return 0; 331cdf0e10cSrcweir } 332cdf0e10cSrcweir // ----------------------------------------------------------------------- 333cdf0e10cSrcweir IMPL_LINK( OUserAdmin, ListDblClickHdl, ListBox *, /*pListBox*/ ) 334cdf0e10cSrcweir { 335cdf0e10cSrcweir m_TableCtrl.setUserName(GetUser()); 336cdf0e10cSrcweir m_TableCtrl.UpdateTables(); 337cdf0e10cSrcweir m_TableCtrl.DeactivateCell(); 338cdf0e10cSrcweir m_TableCtrl.ActivateCell(m_TableCtrl.GetCurRow(),m_TableCtrl.GetCurColumnId()); 339cdf0e10cSrcweir return 0; 340cdf0e10cSrcweir } 341cdf0e10cSrcweir 342cdf0e10cSrcweir // ----------------------------------------------------------------------- 343cdf0e10cSrcweir String OUserAdmin::GetUser() 344cdf0e10cSrcweir { 345cdf0e10cSrcweir return m_LB_USER.GetSelectEntry(); 346cdf0e10cSrcweir } 347cdf0e10cSrcweir // ----------------------------------------------------------------------------- 348cdf0e10cSrcweir void OUserAdmin::fillControls(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) 349cdf0e10cSrcweir { 350cdf0e10cSrcweir } 351cdf0e10cSrcweir // ----------------------------------------------------------------------- 352cdf0e10cSrcweir void OUserAdmin::fillWindows(::std::vector< ISaveValueWrapper* >& /*_rControlList*/) 353cdf0e10cSrcweir { 354cdf0e10cSrcweir } 355cdf0e10cSrcweir // ----------------------------------------------------------------------------- 356cdf0e10cSrcweir void OUserAdmin::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) 357cdf0e10cSrcweir { 358cdf0e10cSrcweir m_TableCtrl.setORB(m_xORB); 359cdf0e10cSrcweir try 360cdf0e10cSrcweir { 361cdf0e10cSrcweir if ( !m_xConnection.is() && m_pAdminDialog ) 362cdf0e10cSrcweir { 363cdf0e10cSrcweir m_xConnection = m_pAdminDialog->createConnection().first; 364cdf0e10cSrcweir Reference< XTablesSupplier > xTablesSup(m_xConnection,UNO_QUERY); 365cdf0e10cSrcweir Reference<XUsersSupplier> xUsersSup(xTablesSup,UNO_QUERY); 366cdf0e10cSrcweir if ( !xUsersSup.is() ) 367cdf0e10cSrcweir { 368cdf0e10cSrcweir Reference< XDataDefinitionSupplier > xDriver(m_pAdminDialog->getDriver(),UNO_QUERY); 369cdf0e10cSrcweir if ( xDriver.is() ) 370cdf0e10cSrcweir { 371cdf0e10cSrcweir xUsersSup.set(xDriver->getDataDefinitionByConnection(m_xConnection),UNO_QUERY); 372cdf0e10cSrcweir xTablesSup.set(xUsersSup,UNO_QUERY); 373cdf0e10cSrcweir } 374cdf0e10cSrcweir } 375cdf0e10cSrcweir if ( xUsersSup.is() ) 376cdf0e10cSrcweir { 377cdf0e10cSrcweir m_TableCtrl.setTablesSupplier(xTablesSup); 378cdf0e10cSrcweir m_xUsers = xUsersSup->getUsers(); 379cdf0e10cSrcweir } 380cdf0e10cSrcweir } 381cdf0e10cSrcweir FillUserNames(); 382cdf0e10cSrcweir } 383cdf0e10cSrcweir catch(SQLException& e) 384cdf0e10cSrcweir { 385cdf0e10cSrcweir ::dbaui::showError(::dbtools::SQLExceptionInfo(e),this,m_xORB); 386cdf0e10cSrcweir } 387cdf0e10cSrcweir 388cdf0e10cSrcweir OGenericAdministrationPage::implInitControls(_rSet, _bSaveValue); 389cdf0e10cSrcweir } 390