diff options
author | David Tardon <dtardon@redhat.com> | 2013-04-19 18:54:16 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-04-24 05:17:10 +0000 |
commit | 6c7659b584ea7ed3652ca4eb9a2297f36310c365 (patch) | |
tree | adf631e2d3db309b0696babd9d026bce0996c215 /include/cppuhelper/access_control.hxx | |
parent | 24500d6798007d84521eb24a81c121ebe69d3bfd (diff) |
move URE headers to include/
Change-Id: Ib48a12e902f2311c295b2007f08f44dee28f431d
Reviewed-on: https://gerrit.libreoffice.org/3499
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'include/cppuhelper/access_control.hxx')
-rw-r--r-- | include/cppuhelper/access_control.hxx | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/include/cppuhelper/access_control.hxx b/include/cppuhelper/access_control.hxx new file mode 100644 index 000000000000..f1fbe3f13cd6 --- /dev/null +++ b/include/cppuhelper/access_control.hxx @@ -0,0 +1,119 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef _CPPUHELPER_ACCESS_CONTROL_HXX_ +#define _CPPUHELPER_ACCESS_CONTROL_HXX_ + +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/security/XAccessController.hpp> +#include "cppuhelperdllapi.h" + + +namespace cppu +{ + +/** Helper class retriving access controller singleton from component context. +*/ +class CPPUHELPER_DLLPUBLIC AccessControl +{ + ::com::sun::star::uno::Reference< ::com::sun::star::security::XAccessController > m_xController; + +public: + /** Ctor. + + @param xContext component context to retrieve access controller singleton + */ + AccessControl( + ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XComponentContext > const & xContext ) + SAL_THROW( (::com::sun::star::uno::RuntimeException) ); + /** Ctor. + + @param xController access controller + */ + AccessControl( + ::com::sun::star::uno::Reference< + ::com::sun::star::security::XAccessController > const & xController ) + SAL_THROW( (::com::sun::star::uno::RuntimeException) ); + /** Copy ctor. + + @param ac another object + */ + AccessControl( ::cppu::AccessControl const & ac ) + SAL_THROW( (::com::sun::star::uno::RuntimeException) ); + + /** Clears the access controller reference being used. + */ + inline void SAL_CALL clear() SAL_THROW(()) + { m_xController.clear(); } + + /** Returns access to the access controller reference being used. + + @return access controller + */ + inline ::com::sun::star::uno::Reference< + ::com::sun::star::security::XAccessController > const & SAL_CALL get() const SAL_THROW(()) + { return m_xController; } + + /** Returns access to the access controller reference being used. + + @return access controller + */ + inline ::com::sun::star::security::XAccessController * SAL_CALL operator -> () const SAL_THROW(()) + { return m_xController.get(); } + + + /** A com.sun.star.security.RuntimePermission is for runtime permissions. + A RuntimePermission contains a name (also referred to as a "target name") but no + actions list; you either have the named permission or you don't. + + @param name name of permission + */ + void SAL_CALL checkRuntimePermission( + ::rtl::OUString const & name ) + SAL_THROW( (::com::sun::star::uno::RuntimeException) ); + + /** A com.sun.star.io.FilePermission represents access to a file or directory. + A FilePermission consists of a file url and a set of actions valid for that pathname. + + @param url file url + @param actions actions list + */ + void SAL_CALL checkFilePermission( + ::rtl::OUString const & url, + ::rtl::OUString const & actions ) + SAL_THROW( (::com::sun::star::uno::RuntimeException) ); + + /** A com.sun.star.connection.SocketPermission represents access to a network via sockets. + A SocketPermission consists of a host specification and a set of "actions" + specifying ways to connect to that host. + + @param host host and optional portrange + @param actions actions list + */ + void SAL_CALL checkSocketPermission( + ::rtl::OUString const & host, + ::rtl::OUString const & actions ) + SAL_THROW( (::com::sun::star::uno::RuntimeException) ); +}; + +} + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |