package.xml0000664000076500000240000012175712630333402010124 0ustar Horde_Perms pear.horde.org Perms Horde Permissions System The Perms package provides an interface to the Horde permissions system. Chuck Hagenbuch chuck chuck@horde.org yes Jan Schneider jan jan@horde.org yes 2015-12-04 2.1.6 2.1.0 stable stable LGPL-2.1 * [mjr] Use NULL instead of an empty string in the perms_parents field for root permissions. 5.3.0 6.0.0alpha1 6.0.0alpha1 1.7.0 Horde_Db pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Exception pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Group pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Util pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 Horde_Translation pear.horde.org 2.2.0 3.0.0alpha1 3.0.0alpha1 Horde_Test pear.horde.org 2.1.0 3.0.0alpha1 3.0.0alpha1 Horde_Tree pear.horde.org 2.0.0 3.0.0alpha1 3.0.0alpha1 0.0.1 0.0.1 alpha alpha 2003-07-05 LGPL-2.1 Initial release as a PEAR package 0.0.2 0.0.2 alpha alpha 2006-05-08 LGPL-2.1 Converted to package.xml 2.0 for pear.horde.org 0.1.0 0.1.0 beta beta 2008-08-20 LGPL-2.1 * Cache permissions with Horde_Cache (duck@obala.net). * Fixed special permissions with more than one user or group (Bug #2058). * Added a getParent() call instead of accessing the _datatree member directly. (duck@obala.net, Request #6150). * Added beta SQL Permissions driver (duck@obala.net, Request #6150). * Automatically expand the node of the currently open permission. * Only show Add Permission icons if there are sub-permissions to add. * Make sure Horde_Array is available. * Handle and display errors if they occur in the Perms backend. 0.2.0 0.2.0 beta beta 2011-02-04 LGPL-2.1 * Eliminated horde/Core dependency. * Initial Horde 4 package. 1.0.0alpha1 1.0.0 alpha alpha 2011-03-08 LGPL-2.1 * First alpha release for Horde 4. 1.0.0beta1 1.0.0 beta beta 2011-03-16 LGPL-2.1 * Remove Horde-specific functionality. * Restructure class layout. 1.0.0RC1 1.0.0 beta beta 2011-03-22 LGPL-2.1 * First release candidate for Horde 4. 1.0.0RC2 1.0.0 beta beta 2011-03-29 LGPL-2.1 * Second release candidate for Horde 4. 1.0.0 1.0.0 stable stable 2011-04-06 LGPL-2.1 * First stable release for Horde 4. 1.0.1 1.0.0 stable stable 2011-05-18 LGPL-2.1 * [jan] Fix setting cache in DataTree driver. 1.0.2 1.0.0 stable stable 2011-07-27 LGPL-2.1 * [jan] Update Latvian translation. 1.0.3 1.0.0 stable stable 2011-07-29 LGPL-2.1 * [jan] Correctly aggregate all non-guest permissions. 1.0.4 1.0.0 stable stable 2011-09-20 LGPL-2.1 * [gwr] Accept either d or t IMAP ACL as deletion right. 1.0.5 1.0.0 stable stable 2011-11-02 LGPL-2.1 * [jan] Don't allow to create sub permissions of non-existant parent permissions (Bug #10688). 1.0.6 1.0.0 stable stable 2011-12-06 LGPL-2.1 * [jan] Update Japanese translation (Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>). 1.0.7 1.0.0 stable stable 2012-04-10 LGPL-2.1 * [jan] Update translations. 1.0.8 1.0.0 stable stable 2012-04-10 LGPL-2.1 * 2012-07-05 2.0.0alpha1 1.0.0 alpha stable LGPL-2.1 * First alpha release for Horde 5. * [jan] Use new Horde_Tree API. 2.0.0beta1 1.0.0 beta stable 2012-07-19 LGPL-2.1 * First beta release for Horde 5. * [jan] Remove DataTree driver. 2.0.0beta2 1.0.0 beta stable 2012-07-21 LGPL-2.1 * [jan] Remove optional dependency on Horde_DataTree. 2.0.0RC1 1.0.0 beta stable 2012-10-26 LGPL-2.1 * [mms] Don't log permission not exists errors. 2.0.0 1.0.0 stable stable 2012-10-30 LGPL-2.1 * First stable release for Horde 5. 2.0.1 1.0.0 stable stable 2012-11-06 LGPL-2.1 * [jan] Update Dutch translation (Arjen de Korte <build+horde@de-korte.org>). 2.0.2 1.0.0 stable stable 2013-01-09 LGPL-2.1 * [jan] Update Basque translation (Ibon Igartua <ibon.igartua@ehu.es>). * [jan] Remove creator permission mapping from Kolab backend (Bug #11713). 2.0.3 1.0.0 stable stable 2013-01-29 LGPL-2.1 * [jan] Update French translation (Paul De Vlieger <paul.de_vlieger@moniut.univ-bpclermont.fr>). 2.1.0 2.1.0 stable stable 2013-03-05 LGPL-2.1 * [jan] Add Horde_Perms_Permission_Kolab#getOwnerPermissions(). 2.1.1 2.1.0 stable stable 2013-08-27 LGPL-2.1 * [jan] Fix unserialization notices in SQL driver. 2.1.2 2.1.0 stable stable 2013-11-04 LGPL-2.1 * [mms] Need to expire SQL cache for all sub-permissions when deleting a parent permission. 2.1.3 2.1.0 stable stable 2015-01-09 LGPL-2.1 * [jan] Support loading translations from Composer-installed package. * [jan] Improve PSR-2 compatibility. 2.1.4 2.1.0 stable stable 2015-04-28 LGPL-2.1 * [jan] Fix issues with certain locales like Turkish. 2.1.5 2.1.0 stable stable 2015-06-24 LGPL-2.1 * [mjr] Fix issues when a value of 0 is a valid value for the permission (Bug #14025). 2.1.6 2.1.0 stable stable 2015-12-04 LGPL-2.1 * [mjr] Use NULL instead of an empty string in the perms_parents field for root permissions. Horde_Perms-2.1.6/doc/Horde/Perms/COPYING0000664000076500000240000005764612630333402014614 0ustar GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Acl/Anonymous.php0000664000076500000240000000212012630333402022113 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Kolab_Storage anonymous ACL element to the Horde permission * system. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Acl_Anonymous extends Horde_Perms_Permission_Kolab_Acl { /** * Converts the ACL string to a Horde_Perms mask and stores it in the * provided data array. * * @param array &$data The horde permission data. */ public function toHorde(array &$data) { $data['guest'] = $this->convertAclToMask(); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Acl/Anyone.php0000664000076500000240000000212012630333402021354 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Kolab_Storage known user ACL element to the Horde permission * system. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Acl_Anyone extends Horde_Perms_Permission_Kolab_Acl { /** * Converts the ACL string to a Horde_Perms mask and stores it in the * provided data array. * * @param array &$data The horde permission data. */ public function toHorde(array &$data) { $data['default'] = $this->convertAclToMask(); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Acl/Group.php0000664000076500000240000000267412630333402021235 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Kolab_Storage group ACL element to the Horde permission system. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Acl_Group extends Horde_Perms_Permission_Kolab_Acl { /** * The group id. * * @var string */ protected $_id; /** * Constructor. * * @param string $acl The folder ACL element as provided by the driver. * @param string $id The group id. */ public function __construct($acl, $id) { $this->_id = $id; parent::__construct($acl); } /** * Converts the ACL string to a Horde_Perms mask and stores it in the * provided data array. * * @param array &$data The horde permission data. */ public function toHorde(array &$data) { $data['groups'][$this->_id] = $this->convertAclToMask(); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Acl/User.php0000664000076500000240000000266712630333402021061 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Kolab_Storage user ACL element to the Horde permission system. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Acl_User extends Horde_Perms_Permission_Kolab_Acl { /** * The user id. * * @var string */ protected $_id; /** * Constructor. * * @param string $acl The folder ACL element as provided by the driver. * @param string $id The user id. */ public function __construct($acl, $id) { $this->_id = $id; parent::__construct($acl); } /** * Converts the ACL string to a Horde_Perms mask and stores it in the * provided data array. * * @param array &$data The horde permission data. */ public function toHorde(array &$data) { $data['users'][$this->_id] = $this->convertAclToMask(); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Element/Default.php0000664000076500000240000000231712630333402022411 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Horde default permission element to a Kolab_Storage ACL. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Element_Default extends Horde_Perms_Permission_Kolab_Element { /** * Get the Kolab_Storage ACL id for this permission. * * @return string The ACL string. */ public function getId() { return 'anyone'; } /** * Unset the element in the provided permission array. * * @param array &$current The current permission array. */ public function unsetInCurrent(&$current) { unset($current['default']); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Element/Group.php0000664000076500000240000000364212630333402022123 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Horde group permission element to a Kolab_Storage ACL. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Element_Group extends Horde_Perms_Permission_Kolab_Element { /** * The Horde group id. * * @var string */ protected $_horde_id; /** * The Kolab group id. * * @var string */ protected $_kolab_id; /** * Constructor. * * @param integer $permission The folder permission as provided by * Horde. * @param string $id The group id. * @param Horde_Group_Base $groups The horde group handler. */ public function __construct($permission, $id, Horde_Group_Base $groups) { $this->_horde_id = $id; $this->_kolab_id = 'group:' . $groups->getName($id); parent::__construct($permission); } /** * Get the Kolab_Storage ACL id for this permission. * * @return string The ACL string. */ public function getId() { return $this->_kolab_id; } /** * Unset the element in the provided permission array. * * @param array &$current The current permission array. */ public function unsetInCurrent(&$current) { unset($current['groups'][$this->_horde_id]); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Element/Guest.php0000664000076500000240000000231412630333402022111 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Horde guest permission element to a Kolab_Storage ACL. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Element_Guest extends Horde_Perms_Permission_Kolab_Element { /** * Get the Kolab_Storage ACL id for this permission. * * @return string The ACL string. */ public function getId() { return 'anonymous'; } /** * Unset the element in the provided permission array. * * @param array &$current The current permission array. */ public function unsetInCurrent(&$current) { unset($current['guest']); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Element/User.php0000664000076500000240000000312612630333402021742 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Horde user permission element to a Kolab_Storage ACL. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_Element_User extends Horde_Perms_Permission_Kolab_Element { /** * The group id. * * @var string */ protected $_id; /** * Constructor. * * @param int $permission The folder permission as provided by Horde. * @param string $id The user id. */ public function __construct($permission, $id) { $this->_id = $id; parent::__construct($permission); } /** * Get the Kolab_Storage ACL id for this permission. * * @return string The ACL string. */ public function getId() { return $this->_id; } /** * Unset the element in the provided permission array. * * @param array &$current The current permission array. */ public function unsetInCurrent(&$current) { unset($current['users'][$this->getId()]); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Acl.php0000664000076500000240000000403112630333402020126 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Kolab_Storage ACL element to the Horde permission system. * * Copyright 2006-2015 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ abstract class Horde_Perms_Permission_Kolab_Acl { /** * The ACL. * * @var string */ private $_acl; /** * Constructor. * * @param string $acl The folder ACL element as provided by the driver. */ public function __construct($acl) { $this->_acl = $acl; } /** * Convert the Acl string to a Horde_Perms:: mask and store it in the * provided data array. * * @param array &$data The horde permission data. * * @return NULL */ abstract public function toHorde(array &$data); /** * Convert the Acl string to a Horde_Perms:: mask. * * @return int The permission mask */ protected function convertAclToMask() { $result = 0; if (strpos($this->_acl, 'l') !== false) { $result |= Horde_Perms::SHOW; } if (strpos($this->_acl, 'r') !== false) { $result |= Horde_Perms::READ; } if (strpos($this->_acl, 'i') !== false) { $result |= Horde_Perms::EDIT; } if (strpos($this->_acl, 'd') !== false || strpos($this->_acl, 't') !== false) { $result |= Horde_Perms::DELETE; } return $result; } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/AclIterator.php0000664000076500000240000000340312630333402021642 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps Kolab_Storage ACL to the Horde permission system. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_AclIterator implements IteratorAggregate { /** * The ACL elements. * * @var array */ protected $_acl = array(); /** * Constructor. * * @param array $acl The folder ACL as provided by the driver. */ public function __construct(array $acl) { foreach ($acl as $user => $rights) { if (substr($user, 0, 6) == 'group:') { $this->_acl[] = new Horde_Perms_Permission_Kolab_Acl_Group( $rights, substr($user, 6) ); } elseif ($user == 'anyone' || $user == 'anonymous'){ $class = 'Horde_Perms_Permission_Kolab_Acl_' . Horde_String::ucfirst($user); $this->_acl[] = new $class( $rights ); } else { $this->_acl[] = new Horde_Perms_Permission_Kolab_Acl_User( $rights, $user ); } } } public function getIterator() { return new ArrayIterator($this->_acl); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Element.php0000664000076500000240000000424212630333402021024 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps a single Horde permission element to a Kolab_Storage ACL. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ abstract class Horde_Perms_Permission_Kolab_Element { /** * The permission. * * @var int */ protected $_permission; /** * Constructor. * * @param int $permission The folder permission as provided by Horde. */ public function __construct($permission) { $this->_permission = $permission; } /** * Convert the Horde_Perms:: mask to a Acl string. * * @return string The ACL string. */ public function fromHorde() { return $this->convertMaskToAcl(); } /** * Get the Kolab_Storage ACL id for this permission. * * @return string The ACL string. */ abstract public function getId(); /** * Unset the element in the provided permission array. * * @param array &$current The current permission array. */ abstract public function unsetInCurrent(&$current); /** * Convert the a Horde_Perms:: mask to a Acl string. * * @return string The ACL */ protected function convertMaskToAcl() { $result = ''; if ($this->_permission & Horde_Perms::SHOW) { $result .= 'l'; } if ($this->_permission & Horde_Perms::READ) { $result .= 'r'; } if ($this->_permission & Horde_Perms::EDIT) { $result .= 'iswc'; } if ($this->_permission & Horde_Perms::DELETE) { $result .= 'd'; } return $result; } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/ElementIterator.php0000664000076500000240000000451412630333402022540 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps Horde permission elements into Kolab_Storage ACL. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab_ElementIterator implements IteratorAggregate { /** * The Horde permission elements. * * @var array */ protected $_elements = array(); /** * Constructor. * * @param array $permissions The folder permissions as provided by * Horde. * @param Horde_Group_Base $groups The group handler. */ public function __construct(array $permissions, Horde_Group_Base $groups) { foreach ($permissions as $user => $user_perms) { switch ($user) { case 'default': $this->_elements[] = new Horde_Perms_Permission_Kolab_Element_Default( $user_perms ); break; case 'guest': $this->_elements[] = new Horde_Perms_Permission_Kolab_Element_Guest( $user_perms ); break; case 'groups': foreach ($user_perms as $user_entry => $perms) { $this->_elements[] = new Horde_Perms_Permission_Kolab_Element_Group( $perms, $user_entry, $groups ); } break; case 'users': foreach ($user_perms as $user_entry => $perms) { $this->_elements[] = new Horde_Perms_Permission_Kolab_Element_User( $perms, $user_entry ); } break; } } } public function getIterator() { return new ArrayIterator($this->_elements); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab/Storage.php0000664000076500000240000000317512630333402021043 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Defines a Kolab storage object that supports permission handling. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ interface Horde_Perms_Permission_Kolab_Storage { /** * Return the ID of this storage object. * * @return string The ID. */ public function getPermissionId(); /** * Return the owner of this storage object. * * @return string The owner. */ public function getOwner(); /** * Retrieve the Kolab specific access rights for this storage object. * * @return An array of rights. */ public function getAcl(); /** * Set the Kolab specific access rights for this storage object. * * @param string $user The user to set the ACL for. * @param string $acl The ACL. * * @return NULL */ public function setAcl($user, $acl); /** * Delete Kolab specific access rights for this storage object. * * @param string $user The user to delete the ACL for * * @return NULL */ public function deleteAcl($user); }Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Kolab.php0000664000076500000240000001115612630333402017435 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Maps folder permissions into the Horde_Permission system. * * @category Horde * @package Perms * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_Permission_Kolab extends Horde_Perms_Permission { /** * Kolab ACL speak for all permissions on a shared object. */ const ALL = 'lrid'; /** * The Kolab Folder these permissions belong to. * * @var Horde_Perms_Permission_Kolab_Storage */ protected $_storage; /** * The group handler. * * @var Horde_Group_Base */ protected $_groups; /** * A cache for the folder acl settings. The cache holds the permissions * in horde compatible format, not in the IMAP permission format. * * @var string */ public $data; /** * Constructor. * * @param Horde_Perms_Permission_Kolab_Storage $storage The storage object * represented by this * permission instance. * * @param Horde_Group_Base $groups The group handler. */ public function __construct(Horde_Perms_Permission_Kolab_Storage $storage, Horde_Group_Base $groups) { parent::__construct(__CLASS__ . '::' . $storage->getPermissionId()); $this->_storage = $storage; $this->_groups = $groups; $this->data = $this->getCurrentPermissions(); } /** * Returns the permissions of the owner on this object. * * @since Horde_Perms 2.1.0 * * @return integer All owner permissions for this object. */ public function getOwnerPermissions() { $users = parent::getUserPermissions(); return $users[$this->_storage->getOwner()]; } /** * Returns an array of all user permissions on this object. * * @param integer $perm List only users with this permission level. * Defaults to all users. * * @return array All user permissions for this object, indexed by user. */ public function getUserPermissions($perm = null) { $users = parent::getUserPermissions($perm); unset($users[$this->_storage->getOwner()]); return $users; } /** * Returns the current permission of the folder and stores the values in * the cache. */ public function getCurrentPermissions() { $data = array(); /* @todo: Can we lazy load $this->data so that we restrict to using * MYRIGHTS only when that is all we need and use the full GETACL just * when required. */ $acl = new Horde_Perms_Permission_Kolab_AclIterator( $this->_storage->getAcl() ); foreach ($acl as $element) { $element->toHorde($data); } $data['type'] = 'matrix'; return $data; } /** * Saves the current permission values from the cache to the IMAP folder. */ public function save() { /* @todo: If somebody else accessed the folder before us, we will * overwrite the change here. */ $current = $this->getCurrentPermissions(); $owner = $this->_storage->getOwner(); $elements = new Horde_Perms_Permission_Kolab_ElementIterator( $this->data, $this->_groups ); foreach ($elements as $element) { if ($owner == $element->getId()) { continue; } $this->_storage->setAcl($element->getId(), $element->fromHorde()); $element->unsetInCurrent($current); } // Delete ACLs that have been removed $elements = new Horde_Perms_Permission_Kolab_ElementIterator( $current, $this->_groups ); foreach ($elements as $element) { if ($owner == $element->getId()) { continue; } $this->_storage->deleteAcl($element->getId()); } // Load the permission from the folder again $this->data = $this->getCurrentPermissions(); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission/Sql.php0000664000076500000240000000507612630333402017150 0ustar * @category Horde * @package Perms */ class Horde_Perms_Permission_Sql extends Horde_Perms_Permission { /** * The string permission id. * * @var string */ protected $_id; /** * Cache object. * * @var Horde_Cache */ protected $_cache; /** * Database handle for saving changes. * * @var Horde_Db_Adapter */ protected $_db; /** * Tasks to run on serialize(). * * @return array Parameters that are stored. */ public function __sleep() { return array_diff(array_keys(get_class_vars(__CLASS__)), array('_cache', '_db')); } /** * Sets the helper functions within the object. * * @param Horde_Cache $cache The cache object. * @param Horde_Db_Adapter $db The database object. */ public function setObs(Horde_Cache $cache, Horde_Db_Adapter $db) { $this->_cache = $cache; $this->_db = $db; } /** * Get permission ID. * * @return TODO */ public function getId() { return $this->_id; } /** * Set permission id. * * @param string $id Permission ID. */ public function setId($id) { $this->_id = $id; } /** * Saves any changes to this object to the backend permanently. New * objects are added instead. * * @throws Horde_Perms_Exception */ public function save() { if (!isset($this->_db)) { throw new Horde_Perms_Exception('Cannot save because the DB instances has not been set in this object.'); } $name = $this->getName(); if (empty($name)) { throw new Horde_Perms_Exception('Permission names must be non-empty'); } $query = 'UPDATE horde_perms SET perm_data = ? WHERE perm_id = ?'; $params = array(serialize($this->data), $this->getId()); try { $this->_db->update($query, $params); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } $this->_cache->expire('perm_sql_' . $this->_cacheVersion . $name); $this->_cache->expire('perm_sql_exists_' . $this->_cacheVersion . $name); } } Horde_Perms-2.1.6/lib/Horde/Perms/Base.php0000664000076500000240000002131512630333402015125 0ustar * @author Jan Schneider * @category Horde * @package Perms */ abstract class Horde_Perms_Base { /** * Cache object. * * @var Horde_Cache */ protected $_cache; /** * Logger. * * @var Horde_Log_Logger */ protected $_logger; /** * Constructor. * * @param array $params Configuration parameters: *
     * 'cache' - (Horde_Cache) The object to use to cache perms.
     * 'logger' - (Horde_Log_Logger) A logger object.
     * 
* * @throws Horde_Perms_Exception */ public function __construct($params = array()) { if (isset($params['cache'])) { $this->_cache = $params['cache']; } if (isset($params['logger'])) { $this->_logger = $params['logger']; } } /** * Returns the short name of an object, the last portion of the full name. * * @param string $name The name of the object. * * @return string The object's short name. */ public function getShortName($name) { /* If there are several components to the name, explode and * get the last one, otherwise just return the name. */ if (strpos($name, ':') !== false) { $tmp = explode(':', $name); return array_pop($tmp); } return $name; } /** * Returns a new permissions object. * * @param string $name The permission's name. * @param string $type The permission type. * @param array $params The permission parameters. * * @return Horde_Perms_Permission A new permissions object. * @throws Horde_Perms_Exception */ abstract public function newPermission($name, $type = 'matrix', $params = null); /** * Returns an object corresponding to the named permission, with the users * and other data retrieved appropriately. * * @param string $name The name of the permission to retrieve. * * @return Horde_Perms_Permission A permissions object. * @throws Horde_Perms_Exception */ abstract public function getPermission($name); /** * Returns an object corresponding to the given unique ID, with the users * and other data retrieved appropriately. * * @param integer $cid The unique ID of the permission to retrieve. * * @return Horde_Perms_Permission A permissions object. * @throws Horde_Perms_Exception */ abstract public function getPermissionById($cid); /** * Adds a permission to the permissions system. The permission must first * be created with newPermission(), and have any initial users added to * it, before this function is called. * * @param Horde_Perms_Permission $perm The permissions object. * * @throws Horde_Perms_Exception */ abstract public function addPermission(Horde_Perms_Permission $perm); /** * Removes a permission from the permissions system permanently. * * @param Horde_Perms_Permission $perm The permission to remove. * @param boolean $force Force to remove every child. * * @throws Horde_Perms_Exception */ abstract public function removePermission(Horde_Perms_Permission $perm, $force = false); /** * Finds out what rights the given user has to this object. * * @param mixed $permission The full permission name of the object to * check the permissions of, or the * Horde_Permissions object. * @param string $user The user to check for. * @param string $creator The user who created the event. * * @return mixed A bitmask of permissions the user has, false if there * are none. */ public function getPermissions($permission, $user, $creator = null) { if (is_string($permission)) { try { $permission = $this->getPermission($permission); } catch (Horde_Perms_Exception $e) { /* Ignore not exists errors. */ if ($this->_logger && ($e->getCode() != Horde_Perms_Exception::NOT_EXIST)) { $this->_logger->log($e, 'DEBUG'); } return false; } } // If this is a guest user, only check guest permissions. if (empty($user)) { return $permission->getGuestPermissions(); } // Combine all other applicable permissions. $type = $permission->get('type'); $composite_perm = ($type == 'matrix') ? 0 : array(); // If $creator was specified, check creator permissions. // If the user is the creator of the event see if there are creator // permissions. if (!is_null($creator) && strlen($user) && ($user === $creator) && (($perms = $permission->getCreatorPermissions()) !== null)) { if ($type == 'matrix') { $composite_perm |= $perms; } else { $composite_perm[] = $perms; } } // Check user-level permissions. $userperms = $permission->getUserPermissions(); if (isset($userperms[$user])) { if ($type == 'matrix') { $composite_perm |= $userperms[$user]; } else { $composite_perm[] = $userperms[$user]; } } // If no user permissions are found, try group permissions. if (isset($permission->data['groups']) && is_array($permission->data['groups']) && count($permission->data['groups'])) { $groups = $GLOBALS['injector'] ->getInstance('Horde_Group') ->listGroups($user); foreach ($permission->data['groups'] as $group => $perms) { if (isset($groups[$group])) { if ($type == 'matrix') { $composite_perm |= $perms; } else { $composite_perm[] = $perms; } } } } // If there are default permissions, return them. if (($perms = $permission->getDefaultPermissions()) !== null) { if ($type == 'matrix') { $composite_perm |= $perms; } else { $composite_perm[] = $perms; } } // Return composed permissions. if ($composite_perm) { return $composite_perm; } // Otherwise, deny all permissions to the object. return false; } /** * Returns the unique identifier of this permission. * * @param Horde_Perms_Permission $permission The permission object to get * the ID of. * * @return integer The unique id. * @throws Horde_Perms_Exception */ abstract public function getPermissionId($permission); /** * Finds out if the user has the specified rights to the given object. * * @param string $permission The permission to check. * @param string $user The user to check for. * @param integer $perm The permission level that needs to be checked * for. * @param string $creator The creator of the event * * @return boolean Whether the user has the specified permissions. */ public function hasPermission($permission, $user, $perm, $creator = null) { return (bool)($this->getPermissions($permission, $user, $creator) & $perm); } /** * Checks if a permission exists in the system. * * @param string $permission The permission to check. * * @return boolean True if the permission exists. */ abstract public function exists($permission); /** * Returns a list of parent permissions. * * @param string $child The name of the child to retrieve parents for. * * @return array A hash with all parents in a tree format. * @throws Horde_Perms_Exception */ abstract public function getParents($child); /** * Returns all permissions of the system in a tree format. * * @return array A hash with all permissions in a tree format. */ abstract public function getTree(); } Horde_Perms-2.1.6/lib/Horde/Perms/Exception.php0000664000076500000240000000070212630333402016206 0ustar * @category Horde * @package Perms */ class Horde_Perms_Exception extends Horde_Exception_Wrapped { const NOT_EXIST = 1; } Horde_Perms-2.1.6/lib/Horde/Perms/Null.php0000664000076500000240000000737512630333402015177 0ustar * @category Horde * @package Perms */ class Horde_Perms_Null extends Horde_Perms_Base { /** * Returns a new permissions object. * * @param string $name The permission's name. * @param string $type The permission type. * @param array $params The permission parameters. * * @return Horde_Perms_Permission A new permissions object. * @throws Horde_Perms_Exception */ public function newPermission($name, $type = 'matrix', $params = null) { throw new Horde_Perms_Exception(); } /** * Returns an object corresponding to the named permission, with the users * and other data retrieved appropriately. * * @param string $name The name of the permission to retrieve. * * @return Horde_Perms_Permission A permissions object. * @throws Horde_Perms_Exception */ public function getPermission($name) { throw new Horde_Perms_Exception(); } /** * Returns an object corresponding to the given unique ID, with the users * and other data retrieved appropriately. * * @param integer $cid The unique ID of the permission to retrieve. * * @return Horde_Perms_Permission A permissions object. * @throws Horde_Perms_Exception */ public function getPermissionById($cid) { throw new Horde_Perms_Exception(); } /** * Adds a permission to the permissions system. The permission must first * be created with newPermission(), and have any initial users added to * it, before this function is called. * * @param Horde_Perms_Permission $perm The permissions object. * * @throws Horde_Perms_Exception */ public function addPermission(Horde_Perms_Permission $perm) { throw new Horde_Perms_Exception(); } /** * Removes a permission from the permissions system permanently. * * @param Horde_Perms_Permission $perm The permission to remove. * @param boolean $force Force to remove every child. * * @throws Horde_Perms_Exception */ public function removePermission(Horde_Perms_Permission $perm, $force = false) { throw new Horde_Perms_Exception(); } /** * Returns the unique identifier of this permission. * * @param Horde_Perms_Permission $permission The permission object to get * the ID of. * * @return integer The unique id. * @throws Horde_Perms_Exception */ public function getPermissionId($permission) { throw new Horde_Perms_Exception(); } /** * Checks if a permission exists in the system. * * @param string $permission The permission to check. * * @return boolean True if the permission exists. */ public function exists($permission) { return false; } /** * Returns a list of parent permissions. * * @param string $child The name of the child to retrieve parents for. * * @return array A hash with all parents in a tree format. * @throws Horde_Perms_Exception */ public function getParents($child) { throw new Horde_Perms_Exception(); } /** * Returns all permissions of the system in a tree format. * * @return array A hash with all permissions in a tree format. */ public function getTree() { return array(); } } Horde_Perms-2.1.6/lib/Horde/Perms/Permission.php0000664000076500000240000004476612630333402016422 0ustar * @author Jan Schneider * @category Horde * @package Perms */ class Horde_Perms_Permission { /** * TODO */ public $data; /** * TODO */ public $name; /** * Incrementing version number if cached classes change. * * @var integer */ protected $_cacheVersion; /** * Constructor. * * @param string $name The name of the perm. * @param integer $cacheVersion The revision number of the class. * @param string $type The permission type. * @param array $params A hash with any parameters that the * permission type needs. */ public function __construct($name, $cacheVersion = null, $type = 'matrix', $params = null) { $this->setName($name); $this->setCacheVersion($cacheVersion); $this->data['type'] = $type; if (is_array($params)) { $this->data['params'] = $params; } } /** * Sets the revision number of the class. * * @param integer $cacheVersion The revision number of the class. */ public function setCacheVersion($cacheVersion) { $this->_cacheVersion = $cacheVersion; } /** * Gets one of the attributes of the object, or null if it isn't defined. * * @param string $attribute The attribute to get. * * @return mixed The value of the attribute, or null. */ public function get($attribute) { if (isset($this->data[$attribute])) { return $this->data[$attribute]; } return ($attribute == 'type') ? 'matrix' : null; } /** * Get permission name. * * @return string Permission name. */ public function getName() { return $this->name; } /** * Set permission name * * @param string $name Permission name. */ public function setName($name) { $this->name = $name; } /** * Get permission details. * * @return array Permission details. */ public function getData() { return $this->data; } /** * Set permission details. * * @param string $data Permission details. */ public function setData($data) { $this->data = $data; } /** * Updates the permissions based on data passed in the array. * * @param array $perms An array containing the permissions which are to * be updated. */ public function updatePermissions($perms) { $type = $this->get('type'); if ($type == 'matrix') { /* Array of permission types to iterate through. */ $perm_types = Horde_Perms::getPermsArray(); } foreach ($perms as $perm_class => $perm_values) { switch ($perm_class) { case 'default': case 'guest': case 'creator': if ($type == 'matrix') { foreach ($perm_types as $val => $label) { if (!empty($perm_values[$val])) { $this->setPerm($perm_class, $val, false); } else { $this->unsetPerm($perm_class, $val, false); } } } elseif (!empty($perm_values)) { $this->setPerm($perm_class, $perm_values, false); } else { $this->unsetPerm($perm_class, null, false); } break; case 'u': case 'g': $permId = array('class' => $perm_class == 'u' ? 'users' : 'groups'); /* Figure out what names that are stored in this permission * class have not been submitted for an update, ie. have been * removed entirely. */ $current_names = isset($this->data[$permId['class']]) ? array_keys($this->data[$permId['class']]) : array(); $updated_names = array_keys($perm_values); $removed_names = array_diff($current_names, $updated_names); /* Remove any names that have been completely unset. */ foreach ($removed_names as $name) { unset($this->data[$permId['class']][$name]); } /* If nothing to actually update finish with this case. */ if (is_null($perm_values)) { continue; } /* Loop through the names and update permissions for each. */ // @todo for Horde 6 - allow integer 0 values? foreach ($perm_values as $name => $name_values) { $permId['name'] = $name; if ($type == 'matrix') { foreach ($perm_types as $val => $label) { if ($name_values[$val] === '0' || !empty($name_values[$val])) { $this->setPerm($permId, $val, false); } else { $this->unsetPerm($permId, $val, false); } } } elseif ($name_values === '0' || !empty($name_values)) { $this->setPerm($permId, $name_values, false); } else { $this->unsetPerm($permId, null, false); } } break; } } } /** * TODO */ public function setPerm($permId, $permission, $update = true) { if (is_array($permId)) { if (empty($permId['name'])) { return; } if ($this->get('type') == 'matrix' && isset($this->data[$permId['class']][$permId['name']])) { $this->data[$permId['class']][$permId['name']] |= $permission; } else { $this->data[$permId['class']][$permId['name']] = $permission; } } else { if ($this->get('type') == 'matrix' && isset($this->data[$permId])) { $this->data[$permId] |= $permission; } else { $this->data[$permId] = $permission; } } if ($update) { $this->save(); } } /** * TODO */ public function unsetPerm($permId, $permission, $update = true) { if (is_array($permId)) { if (empty($permId['name'])) { return; } if ($this->get('type') == 'matrix') { if (isset($this->data[$permId['class']][$permId['name']])) { $this->data[$permId['class']][$permId['name']] &= ~$permission; if (empty($this->data[$permId['class']][$permId['name']])) { unset($this->data[$permId['class']][$permId['name']]); } } else { $update = false; } } else { unset($this->data[$permId['class']][$permId['name']]); } } else { if ($this->get('type') == 'matrix') { if (isset($this->data[$permId])) { $this->data[$permId] &= ~$permission; } else { $update = false; } } else { unset($this->data[$permId]); } } if ($update) { $this->save(); } } /** * Grants a user additional permissions to this object. * * @param string $uer The user to grant additional permissions * to. * @param integer $permission The permission (DELETE, etc.) to add. * @param boolean $update Whether to automatically update the * backend. */ public function addUserPermission($user, $permission, $update = true) { if (empty($user)) { return; } if ($this->get('type') == 'matrix' && isset($this->data['users'][$user])) { $this->data['users'][$user] |= $permission; } else { $this->data['users'][$user] = $permission; } if ($update) { $this->save(); } } /** * Grants guests additional permissions to this object. * * @param integer $permission The permission (DELETE, etc.) to add. * @param boolean $update Whether to automatically update the * backend. */ public function addGuestPermission($permission, $update = true) { if ($this->get('type') == 'matrix' && isset($this->data['guest'])) { $this->data['guest'] |= $permission; } else { $this->data['guest'] = $permission; } if ($update) { $this->save(); } } /** * Grants creators additional permissions to this object. * * @param integer $permission The permission (DELETE, etc.) to add. * @param boolean $update Whether to automatically update the * backend. */ public function addCreatorPermission($permission, $update = true) { if ($this->get('type') == 'matrix' && isset($this->data['creator'])) { $this->data['creator'] |= $permission; } else { $this->data['creator'] = $permission; } if ($update) { $this->save(); } } /** * Grants additional default permissions to this object. * * @param integer $permission The permission (DELETE, etc.) to add. * @param boolean $update Whether to automatically update the * backend. */ public function addDefaultPermission($permission, $update = true) { if ($this->get('type') == 'matrix' && isset($this->data['default'])) { $this->data['default'] |= $permission; } else { $this->data['default'] = $permission; } if ($update) { $this->save(); } } /** * Grants a group additional permissions to this object. * * @param integer $groupId The id of the group to grant additional * permissions to. * @param integer $permission The permission (DELETE, etc.) to add. * @param boolean $update Whether to automatically update the * backend. */ public function addGroupPermission($groupId, $permission, $update = true) { if (empty($groupId)) { return; } if ($this->get('type') == 'matrix' && isset($this->data['groups'][$groupId])) { $this->data['groups'][$groupId] |= $permission; } else { $this->data['groups'][$groupId] = $permission; } if ($update) { $this->save(); } } /** * Removes a permission that a user currently has on this object. * * @param string $user The user to remove the permission from. * Defaults to all users. * @param integer $permission The permission (DELETE, etc.) to * remove. Defaults to all permissions. * @param boolean $update Whether to automatically update the * backend. */ public function removeUserPermission($user = null, $permission = null, $update = true) { if (is_null($user)) { $this->data['users'] = array(); } else { if (!isset($this->data['users'][$user])) { return; } if ($permission && $this->get('type') == 'matrix') { $this->data['users'][$user] &= ~$permission; if (empty($this->data['users'][$user])) { unset($this->data['users'][$user]); } } else { unset($this->data['users'][$user]); } } if ($update) { $this->save(); } } /** * Removes a permission that guests currently have on this object. * * @param integer $permission The permission (DELETE, etc.) to * remove. Defaults to all permissions. * @param boolean $update Whether to automatically update the * backend. */ public function removeGuestPermission($permission = null, $update = true) { if (!isset($this->data['guest'])) { return; } if ($permission && $this->get('type') == 'matrix') { $this->data['guest'] &= ~$permission; } else { unset($this->data['guest']); } if ($update) { $this->save(); } } /** * Removes a permission that creators currently have on this object. * * @param integer $permission The permission (DELETE, etc.) to * remove. Defaults to all permissions. * @param boolean $update Whether to automatically update the * backend. */ public function removeCreatorPermission($permission = null, $update = true) { if (!isset($this->data['creator'])) { return; } if ($permission && $this->get('type') == 'matrix') { $this->data['creator'] &= ~$permission; } else { unset($this->data['creator']); } if ($update) { $this->save(); } } /** * Removes a default permission on this object. * * @param integer $permission The permission (DELETE, etc.) to * remove. Defaults to all permissions. * @param boolean $update Whether to automatically update the * backend. */ public function removeDefaultPermission($permission = null, $update = true) { if (!isset($this->data['default'])) { return; } if ($permission && $this->get('type') == 'matrix') { $this->data['default'] &= ~$permission; } else { unset($this->data['default']); } if ($update) { $this->save(); } } /** * Removes a permission that a group currently has on this object. * * @param integer $groupId The id of the group to remove the * permission from. Defaults to all groups. * @param integer $permission The permission (DELETE, etc.) to * remove. Defaults to all permissions. * @param boolean $update Whether to automatically update the * backend. */ public function removeGroupPermission($groupId = null, $permission = null, $update = true) { if (is_null($groupId)) { $this->data['groups'] = array(); } else { if (!isset($this->data['groups'][$groupId])) { return; } if ($permission && $this->get('type') == 'matrix') { $this->data['groups'][$groupId] &= ~$permission; if (empty($this->data['groups'][$groupId])) { unset($this->data['groups'][$groupId]); } } else { unset($this->data['groups'][$groupId]); } } if ($update) { $this->save(); } } /** * Returns an array of all user permissions on this object. * * @param integer $perm List only users with this permission level. * Defaults to all users. * * @return array All user permissions for this object, indexed by user. */ public function getUserPermissions($perm = null) { if (!isset($this->data['users']) || !is_array($this->data['users'])) { return array(); } elseif (!$perm) { return $this->data['users']; } $users = array(); foreach ($this->data['users'] as $user => $uperm) { if ($uperm & $perm) { $users[$user] = $uperm; } } return $users; } /** * Returns the guest permissions on this object. * * @return integer The guest permissions on this object. */ public function getGuestPermissions() { return empty($this->data['guest']) ? null : $this->data['guest']; } /** * Returns the creator permissions on this object. * * @return integer The creator permissions on this object. */ public function getCreatorPermissions() { return empty($this->data['creator']) ? null : $this->data['creator']; } /** * Returns the default permissions on this object. * * @return integer The default permissions on this object. */ public function getDefaultPermissions() { return empty($this->data['default']) ? null : $this->data['default']; } /** * Returns an array of all group permissions on this object. * * @param integer $perm List only users with this permission level. * Defaults to all users. * * @return array All group permissions for this object, indexed by group. */ public function getGroupPermissions($perm = null) { if (!isset($this->data['groups']) || !is_array($this->data['groups'])) { return array(); } elseif (!$perm) { return $this->data['groups']; } $groups = array(); foreach ($this->data['groups'] as $group => $gperm) { if ($gperm & $perm) { $groups[$group] = $gperm; } } return $groups; } /** * TODO */ public function save() { } } Horde_Perms-2.1.6/lib/Horde/Perms/Sql.php0000664000076500000240000003211512630333402015012 0ustar * @category Horde * @package Perms */ class Horde_Perms_Sql extends Horde_Perms_Base { /** * Configuration parameters. * * @var array */ protected $_params = array(); /** * Handle for the current database connection. * * @var Horde_Db_Adapter */ protected $_db; /** * Incrementing version number if cached classes change. * * @var integer */ private $_cacheVersion = 2; /** * Cache of previously retrieved permissions. * * @var array */ protected $_permsCache = array(); /** * Constructor. * * @param array $params Configuration parameters (in addition to base * Horde_Perms parameters): *
     * 'db' - (Horde_Db_Adapter) [REQUIRED] The DB instance.
     * 'table' - (string) The name of the perms table.
     *           DEFAULT: 'horde_perms'
     * 
* * @throws Horde_Perms_Exception */ public function __construct($params = array()) { if (!isset($params['db'])) { throw new Horde_Perms_Exception('Missing db parameter.'); } $this->_db = $params['db']; unset($params['db']); $this->_params = array_merge(array( 'table' => 'horde_perms' ), $this->_params, $params); parent::__construct($params); } /** * Returns a new permissions object. * * @param string $name The permission's name. * @param string $type The permission type. * @param array $params The permission parameters. * * @return Horde_Perms_Permission_Sql A new permissions object. */ public function newPermission($name, $type = 'matrix', $params = null) { $ob = new Horde_Perms_Permission_Sql($name, $this->_cacheVersion, $type, $params); $ob->setObs($this->_cache, $this->_db); return $ob; } /** * Returns an object corresponding to the named permission, with the * users and other data retrieved appropriately. * * @param string $name The name of the permission to retrieve. * * @return Horde_Perms_Permission_Sql TODO * @throw Horde_Perms_Exception */ public function getPermission($name) { if (isset($this->_permsCache[$name])) { return $this->_permsCache[$name]; } $perm = $this->_cache->get('perm_sql_' . $this->_cacheVersion . $name, $GLOBALS['conf']['cache']['default_lifetime']); if (!empty($perm)) { $this->_permsCache[$name] = unserialize($perm); } if (empty($this->_permsCache[$name])) { $query = 'SELECT perm_id, perm_data FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; try { $result = $this->_db->selectOne($query, array($name)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } if (empty($result)) { throw new Horde_Perms_Exception('Does not exist', Horde_Perms_Exception::NOT_EXIST); } $object = new Horde_Perms_Permission_Sql($name, $this->_cacheVersion); $object->setId($result['perm_id']); $object->setData(unserialize($result['perm_data'])); $this->_cache->set('perm_sql_' . $this->_cacheVersion . $name, serialize($object)); $this->_permsCache[$name] = $object; } $this->_permsCache[$name]->setObs($this->_cache, $this->_db); return $this->_permsCache[$name]; } /** * Returns a permission object corresponding to the given unique ID, * with the users and other data retrieved appropriately. * * @param integer $id The unique ID of the permission to retrieve. * * @return Horde_Perms_Permission_Sql TODO * @throws Horde_Perms_Exception */ public function getPermissionById($id) { if ($id == Horde_Perms::ROOT || empty($id)) { $object = $this->newPermission(Horde_Perms::ROOT); } else { $query = 'SELECT perm_name, perm_data FROM ' . $this->_params['table'] . ' WHERE perm_id = ?'; try { $result = $this->_db->selectOne($query, array($id)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } if (empty($result)) { throw new Horde_Perms_Exception('Does not exist', Horde_Perms_Exception::NOT_EXIST); } $object = new Horde_Perms_Permission_Sql($result['perm_name'], $this->_cacheVersion); $object->setId($id); $object->setData(unserialize($result['perm_data'])); $object->setObs($this->_cache, $this->_db); } return $object; } /** * Adds a permission to the permissions system. The permission must first * be created with newPermission(), and have any initial users added to * it, before this function is called. * * @param Horde_Perms_Permission_Sql $perm The perm object. * * @return integer Permission ID in the database. * @throws Horde_Perms_Exception */ public function addPermission(Horde_Perms_Permission $perm) { $name = $perm->getName(); if (empty($name)) { throw new Horde_Perms_Exception('Permission name must be non-empty.'); } $this->_cache->expire('perm_sql_' . $this->_cacheVersion . $name); $this->_cache->expire('perm_sql_exists_' . $this->_cacheVersion . $name); // remove root from the name $root = Horde_Perms::ROOT . ':'; if (substr($name, 0, strlen($root)) == ($root)) { $name = substr($name, strlen($root)); } // build parents $parents = null; if (($pos = strrpos($name, ':')) !== false) { $parent_name = substr($name, 0, $pos); $query = 'SELECT perm_id, perm_parents FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; $result = $this->_db->selectOne($query, array($parent_name)); if (empty($result)) { throw new Horde_Perms_Exception(Horde_Perms_Translation::t("Trying to create sub permission of non-existent parent permission. Create parent permission(s) first.")); } $parents = $result['perm_parents'] . ':' . $result['perm_id']; } $query = 'INSERT INTO ' . $this->_params['table'] . ' (perm_name, perm_parents) VALUES (?, ?)'; try { $id = $this->_db->insert($query, array($name, $parents)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } $perm->setId($id); $perm->save(); return $id; } /** * Removes a permission from the permissions system permanently. * * @param Horde_Perms_Permission_Sql $perm The permission to * remove. * @param boolean $force Force to remove every * child. * * @return boolean True if permission was deleted. * @throws Horde_Perms_Exception */ public function removePermission(Horde_Perms_Permission $perm, $force = false) { $name = $perm->getName(); $this->_cache->expire('perm_sql_' . $this->_cacheVersion . $name); $this->_cache->expire('perm_sql_exists_' . $this->_cacheVersion . $name); $query = 'DELETE FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; try { $result = $this->_db->delete($query, array($name)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } if (!$force) { return (bool)$result; } /* Need to expire cache for all sub-permissions. */ try { $sub = $this->_db->selectValues( 'SELECT perm_name FROM ' . $this->_params['table'] . ' WHERE perm_name LIKE ?', array($name . ':%') ); foreach ($sub as $val) { $this->_cache->expire('perm_sql_' . $this->_cacheVersion . $val); $this->_cache->expire('perm_sql_exists_' . $this->_cacheVersion . $val); } } catch (Horde_Db_Exception $e) {} $query = 'DELETE FROM ' . $this->_params['table'] . ' WHERE perm_name LIKE ?'; try { return (bool)$this->_db->delete($query, array($name . ':%')); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } } /** * Returns the unique identifier of this permission. * * @param Horde_Perms_Permission_Sql $perm The permission object to * get the ID of. * * @return integer The unique id. * @throws Horde_Perms_Exception */ public function getPermissionId($permission) { if ($permission->getName() == Horde_Perms::ROOT) { return Horde_Perms::ROOT; } $query = 'SELECT perm_id FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; try { return $this->_db->selectValue($query, array($permission->getName())); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } } /** * Checks if a permission exists in the system. * * @param string $permission The permission to check. * * @return boolean True if the permission exists. * @throws Horde_Perms_Exception */ public function exists($permission) { $key = 'perm_sql_exists_' . $this->_cacheVersion . $permission; $exists = $this->_cache->get($key, $GLOBALS['conf']['cache']['default_lifetime']); if ($exists === false) { $query = 'SELECT COUNT(*) FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; try { $exists = $this->_db->selectValue($query, array($permission)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } $this->_cache->set($key, (string)$exists); } return (bool)$exists; } /** * Returns a child's direct parent ID. * * @param mixed $child The object name for which to look up the parent's * ID. * * @return integer The unique ID of the parent. * @throws Horde_Perms_Exception */ public function getParent($child) { $query = 'SELECT perm_parents FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; try { $parents = $this->_db->selectValue($query, array($child)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } if (empty($parents)) { return Horde_Perms::ROOT; } $parents = explode(':', $parents); return array_pop($parents); } /** * Returns a list of parent permissions. * * @param string $child The name of the child to retrieve parents for. * * @return array A hash with all parents in a tree format. * @throws Horde_Perms_Exception */ public function getParents($child) { $query = 'SELECT perm_parents FROM ' . $this->_params['table'] . ' WHERE perm_name = ?'; try { $result = $this->_db->selectValue($query, array($child)); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } if (empty($result)) { throw new Horde_Perms_Exception('Does not exist', Horde_Perms_Exception::NOT_EXIST); } return $this->_getParents($result); } /** * TODO */ protected function _getParents($parents) { if (empty($parents)) { return array(Horde_Perms::ROOT => true); } $pname = $parents; $parents = substr($parents, 0, strrpos($parents, ':')); return array($pname => $this->_getParents($parents)); } /** * Returns all permissions of the system in a tree format. * * @return array A hash with all permissions in a tree format. * @throws Horde_Perms_Exception */ public function getTree() { $query = 'SELECT perm_id, perm_name FROM ' . $this->_params['table'] . ' ORDER BY perm_name ASC'; try { $tree = $this->_db->selectAssoc($query); } catch (Horde_Db_Exception $e) { throw new Horde_Perms_Exception($e); } $tree[Horde_Perms::ROOT] = Horde_Perms::ROOT; return $tree; } } Horde_Perms-2.1.6/lib/Horde/Perms/Translation.php0000664000076500000240000000136512630333402016554 0ustar * @package Perms */ class Horde_Perms_Translation extends Horde_Translation_Autodetect { /** * The translation domain * * @var string */ protected static $_domain = 'Horde_Perms'; /** * The absolute PEAR path to the translations for the default gettext handler. * * @var string */ protected static $_pearDirectory = '@data_dir@'; } Horde_Perms-2.1.6/lib/Horde/Perms.php0000664000076500000240000000462112630333402014254 0ustar * @author Jan Schneider * @category Horde * @package Perms */ class Horde_Perms { /** * Existence of object is known - object is shown to user. */ const SHOW = 2; /** * Contents of the object can be read. */ const READ = 4; /** * Contents of the object can be edited. */ const EDIT = 8; /** * The object can be deleted. */ const DELETE = 16; /** * A bitmask of all possible permission values. * * Useful for removeXxxPermission(), unsetPerm(), etc. * 30 = SHOW | READ | EDIT | DELETE */ const ALL = 30; /** * The root permission. */ const ROOT = -1; /** * Cache for integerToArray(). * * @var array */ protected static $_itaCache = array(); /** * Returns an hash of the available permissions. * * @return array The available permissions as a hash. */ public static function getPermsArray() { return array( self::SHOW => Horde_Perms_Translation::t("Show"), self::READ => Horde_Perms_Translation::t("Read"), self::EDIT => Horde_Perms_Translation::t("Edit"), self::DELETE => Horde_Perms_Translation::t("Delete") ); } /** * Given an integer value of permissions returns an array representation * of the integer. * * @param integer $int The integer representation of permissions. * * @return TODO */ public static function integerToArray($int) { if (isset(self::$_itaCache[$int])) { return self::$_itaCache[$int]; } self::$_itaCache[$int] = array(); /* Get the available perms array. */ $perms = self::getPermsArray(); /* Loop through each perm and check if its value is included in the * integer representation. */ foreach ($perms as $val => $label) { if ($int & $val) { self::$_itaCache[$int][$val] = true; } } return self::$_itaCache[$int]; } } Horde_Perms-2.1.6/locale/ar/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000057412630333402017043 0ustar $,8B9Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Horde_Perms-2.1.6/locale/ar/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000153312630333402017042 0ustar # Arabic translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/bg/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000115012630333402017020 0ustar L |B *7 HUAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Всички праваИзтрийРедакцияЧетенеПоказванеHorde_Perms-2.1.6/locale/bg/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000165712630333402017037 0ustar # Bulgarian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Всички права" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Изтрий" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Редакция" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Четене" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Показване" Horde_Perms-2.1.6/locale/bs/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000073712630333402017046 0ustar <\pqx}BDeleteEditShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ObrišiIzmijeniPrikažiHorde_Perms-2.1.6/locale/bs/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000163212630333402017044 0ustar # Bosnian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 #, fuzzy msgid "All Permissions" msgstr "_Dozvole" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Obriši" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Izmijeni" #: lib/Horde/Perms.php:525 #, fuzzy msgid "Read" msgstr "Ne pročitane" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Prikaži" Horde_Perms-2.1.6/locale/ca/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000110112630333402017007 0ustar L |B$-3:All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tots els permisosSuprimirEditaLlegiuMostraHorde_Perms-2.1.6/locale/ca/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000160612630333402017024 0ustar # Catalan translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Tots els permisos" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Suprimir" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Edita" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Llegiu" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Mostra" Horde_Perms-2.1.6/locale/cs/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000122612630333402017041 0ustar L |Xv}All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; Všechna uživatelská právaSmazatUpravitČtecíZobrazitHorde_Perms-2.1.6/locale/cs/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000173512630333402017051 0ustar # Czech translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Všechna uživatelská práva" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Smazat" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Upravit" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Čtecí" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Zobrazit" Horde_Perms-2.1.6/locale/da/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000147312630333402017024 0ustar L |e%yDeleteEditReadShowTrying to create sub permission of non-existent parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2014-03-13 23:36+0100 PO-Revision-Date: 2014-03-17 23:12+0100 Last-Translator: Erling Preben Hansen Language-Team: i18n@lists.horde.org Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); SletRedigerLæsVisForsøg på at oprette en undertilladelse til en ikke eksisterede tilladelse. Opret den overordnede tilladelse(r) først.Horde_Perms-2.1.6/locale/da/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000224512630333402017025 0ustar # Danish translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Erling Preben Hansen , 2013-2014. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2014-03-13 23:36+0100\n" "PO-Revision-Date: 2014-03-17 23:12+0100\n" "Last-Translator: Erling Preben Hansen \n" "Language-Team: i18n@lists.horde.org\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Slet" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Rediger" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Læs" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Vis" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existent parent permission. Create " "parent permission(s) first." msgstr "" "Forsøg på at oprette en undertilladelse til en ikke eksisterede tilladelse. " "Opret den overordnede tilladelse(r) først." Horde_Perms-2.1.6/locale/de/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000144312630333402017025 0ustar L |ex% cDeleteEditReadShowTrying to create sub permission of non-existent parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2014-03-25 18:08+0100 PO-Revision-Date: 2011-11-01 11:28+0100 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); LöschenBearbeitenLesenZeigenVersuch Unterrechte von nicht vorhanden Überrechten anzulegen. Erstellen Sie erst die Überrechte.Horde_Perms-2.1.6/locale/de/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000217312630333402017031 0ustar # German translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2014-03-25 18:08+0100\n" "PO-Revision-Date: 2011-11-01 11:28+0100\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Löschen" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Bearbeiten" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Lesen" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Zeigen" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existent parent permission. Create " "parent permission(s) first." msgstr "" "Versuch Unterrechte von nicht vorhanden Überrechten anzulegen. Erstellen Sie " "erst die Überrechte." Horde_Perms-2.1.6/locale/el/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000125012630333402017031 0ustar L |m =^oAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Ολα τα δικαιώματαΔιαγραφήΕπεξεργασίαΑνάγνωσηΕμφάνισηHorde_Perms-2.1.6/locale/el/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000175712630333402017050 0ustar # Greek translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Ολα τα δικαιώματα" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Διαγραφή" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Επεξεργασία" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Ανάγνωση" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Εμφάνιση" Horde_Perms-2.1.6/locale/es/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000153512630333402017046 0ustar L |e% nDeleteEditReadShowTrying to create sub permission of non-existent parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2014-03-25 18:08+0100 PO-Revision-Date: 2014-06-16 09:05+0100 Last-Translator: Manuel P. Ayala , Juan C. Blanco Language-Team: i18n@lists.horde.org Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); EliminarModificarLeerMostrarIntentando crear subpermiso de permiso ascendiente inexistente. Cree primero el/los permiso(s) ascendiente(s).Horde_Perms-2.1.6/locale/es/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000227212630333402017050 0ustar # Spanish translations for Horde_Perms package. # Copyright (C) 2014 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms package. # Automatically generated, 2014. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2014-03-25 18:08+0100\n" "PO-Revision-Date: 2014-06-16 09:05+0100\n" "Last-Translator: Manuel P. Ayala , Juan C. Blanco " "\n" "Language-Team: i18n@lists.horde.org\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Eliminar" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Modificar" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Leer" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Mostrar" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existent parent permission. Create " "parent permission(s) first." msgstr "" "Intentando crear subpermiso de permiso ascendiente inexistente. Cree primero " "el/los permiso(s) ascendiente(s)." Horde_Perms-2.1.6/locale/et/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000114512630333402017044 0ustar L |m=LTZ^All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Kõik õigusedKustutaMuudaLoeNäitaHorde_Perms-2.1.6/locale/et/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000165712630333402017057 0ustar # Estonian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Kõik õigused" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Kustuta" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Muuda" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Loe" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Näita" Horde_Perms-2.1.6/locale/eu/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000154212630333402017046 0ustar L |e%`DeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2012-01-17 12:38+0100 PO-Revision-Date: 2013-01-16 14:08+0100 Last-Translator: Ibon Igartua Language-Team: Euskal Herriko Unibertsitatea Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Poedit-Language: Basque EzabatuEditatuIrakurriErakutsiGuraso baimenik ez duen azpi-baimena sortzen ari zara. Guraso baimena sortu behar duzu lehenago.Horde_Perms-2.1.6/locale/eu/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000227612630333402017056 0ustar # Basque translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2012-01-17 12:38+0100\n" "PO-Revision-Date: 2013-01-16 14:08+0100\n" "Last-Translator: Ibon Igartua \n" "Language-Team: Euskal Herriko Unibertsitatea \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Basque\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Ezabatu" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Editatu" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Irakurri" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Erakutsi" #: lib/Horde/Perms/Sql.php:205 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "Guraso baimenik ez duen azpi-baimena sortzen ari zara. Guraso baimena sortu " "behar duzu lehenago." Horde_Perms-2.1.6/locale/fa/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000112512630333402017020 0ustar L |B) 0 = JAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit همه مجوز‌هاحذفویرایشخواندننمایشHorde_Perms-2.1.6/locale/fa/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000163212630333402017026 0ustar # Persian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "همه مجوز‌ها" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "حذف" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "ویرایش" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "خواندن" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "نمایش" Horde_Perms-2.1.6/locale/fi/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000144312630333402017033 0ustar L |e%VDeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2012-01-17 12:38+0100 PO-Revision-Date: 2012-03-07 19:36:28+0200 Last-Translator: Leena Heino Language-Team: Finnish Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); PoistaMuokkaaLukuNäytäYrität luoda alitason oikeutta olemattomalle ylitasolle. Luo ensin ylitason oikeudet.Horde_Perms-2.1.6/locale/fi/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000220412630333402017032 0ustar # Finnish translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Leena Heino , 2010-2012. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2012-01-17 12:38+0100\n" "PO-Revision-Date: 2012-03-07 19:36:28+0200\n" "Last-Translator: Leena Heino \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Poista" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Muokkaa" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Luku" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Näytä" #: lib/Horde/Perms/Sql.php:205 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "Yrität luoda alitason oikeutta olemattomalle ylitasolle. Luo ensin ylitason " "oikeudet." Horde_Perms-2.1.6/locale/fr/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000155112630333402017044 0ustar L |e% `DeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2012-01-17 12:38+0100 PO-Revision-Date: 2013-01-16 17:33+0100 Last-Translator: Paul De Vlieger Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Lokalize 1.4 SupprimerModifierLireAfficherTentative de création d'une sous-permissions alors que les permissions parentes n'existent pas.Horde_Perms-2.1.6/locale/fr/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000241212630333402017044 0ustar # French translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # Paul De Vlieger , 2013 msgid "" msgstr "" "Project-Id-Version: Horde_Perms \n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2012-01-17 12:38+0100\n" "PO-Revision-Date: 2013-01-16 17:33+0100\n" "Last-Translator: Paul De Vlieger \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.4\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Supprimer" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Modifier" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Lire" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Afficher" #: lib/Horde/Perms/Sql.php:205 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "Tentative de création d'une sous-permissions alors que les permissions " "parentes n'existent pas." Horde_Perms-2.1.6/locale/gl/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000057412630333402017043 0ustar $,8B9Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Horde_Perms-2.1.6/locale/gl/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000153512630333402017044 0ustar # Galician translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/he/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000064712630333402017036 0ustar $,8m9Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Horde_Perms-2.1.6/locale/he/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000161212630333402017032 0ustar # Hebrew translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/hr/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000160112630333402017042 0ustar L |e% bDeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2011-11-01 11:27+0100 PO-Revision-Date: 2011-11-08 16:49+0200 Last-Translator: Valentin Vidic Language-Team: i18n@lists.horde.org Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); IzbrišiUrediPročitajPrikažiPokušaj dodavanja podovlasti u nepostojeću roditeljsku ovlast. Prvo dodajte roditeljske ovlasti.Horde_Perms-2.1.6/locale/hr/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000236012630333402017050 0ustar # Croatian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Valentin Vidic , 2011. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2011-11-01 11:27+0100\n" "PO-Revision-Date: 2011-11-08 16:49+0200\n" "Last-Translator: Valentin Vidic \n" "Language-Team: i18n@lists.horde.org\n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Izbriši" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Uredi" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Pročitaj" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Prikaži" #: lib/Horde/Perms/Sql.php:205 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "Pokušaj dodavanja podovlasti u nepostojeću roditeljsku ovlast. Prvo dodajte " "roditeljske ovlasti." Horde_Perms-2.1.6/locale/hu/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000150412630333402017047 0ustar L |e% iDeleteEditReadShowTrying to create sub permission of non-existent parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2014-03-07 12:17+0100 PO-Revision-Date: 2014-07-14 11:35+0200 Last-Translator: Andras Galos Language-Team: i18n@lists.horde.org Language: hu MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); TörlésMódosításOlvasásMegjelenítésAl-jogosultság létrehozása nem sikerült, mert nincs szülő jogosultság. Hozza létre először azt.Horde_Perms-2.1.6/locale/hu/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000217612630333402017060 0ustar # Hungarian translations for Horde_Perms module. # Copyright 2010-2013 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms \n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2014-03-07 12:17+0100\n" "PO-Revision-Date: 2014-07-14 11:35+0200\n" "Last-Translator: Andras Galos \n" "Language-Team: i18n@lists.horde.org\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Törlés" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Módosítás" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Olvasás" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Megjelenítés" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existent parent permission. Create " "parent permission(s) first." msgstr "" "Al-jogosultság létrehozása nem sikerült, mert nincs szülő jogosultság. Hozza " "létre először azt." Horde_Perms-2.1.6/locale/id/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000077412630333402017037 0ustar DlB DeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=ASCII Content-Transfer-Encoding: 8bit HapusUbahBacaTampilkanHorde_Perms-2.1.6/locale/id/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000160212630333402017031 0ustar # Indonesian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ASCII\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 #, fuzzy msgid "All Permissions" msgstr "Izin" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Hapus" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Ubah" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Baca" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Tampilkan" Horde_Perms-2.1.6/locale/is/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000067512630333402017056 0ustar 4L`ahBmDeleteEditProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EyðaBreytaHorde_Perms-2.1.6/locale/is/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000161712630333402017056 0ustar # Icelandic translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 #, fuzzy msgid "All Permissions" msgstr "Persónulegt" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Eyða" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Breyta" #: lib/Horde/Perms.php:525 #, fuzzy msgid "Read" msgstr "Ólesið" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/it/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000115512630333402017051 0ustar L |m=NW`fAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Tutti i PermessiCancellaModificaLeggiMostraHorde_Perms-2.1.6/locale/it/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000166612630333402017063 0ustar # Italian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Tutti i Permessi" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Cancella" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Modifica" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Leggi" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Mostra" Horde_Perms-2.1.6/locale/ja/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000153712630333402017033 0ustar L |e%~DeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2013-05-07 14:14+0200 PO-Revision-Date: 2013-05-23 20:42+0900 Last-Translator: Hiromi Kimura Language-Team: i18n@lists.horde.org Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.5.4 削除編集読出表示存在しない権限のサブ権限を作成しようとしています。親となる権限を先に作成して下さい。Horde_Perms-2.1.6/locale/ja/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000226412630333402017034 0ustar # Japanese translation for Horde. # Copyright 2004-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde package. # Hiromi Kimura # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2013-05-07 14:14+0200\n" "PO-Revision-Date: 2013-05-23 20:42+0900\n" "Last-Translator: Hiromi Kimura \n" "Language-Team: i18n@lists.horde.org\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.4\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "削除" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "編集" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "読出" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "表示" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "存在しない権限のサブ権限を作成しようとしています。親となる権限を先に作成して" "下さい。" Horde_Perms-2.1.6/locale/km/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000105012630333402017036 0ustar DlB  DeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit លុប​កែ​សម្រួលអានបង្ហាញHorde_Perms-2.1.6/locale/km/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000166712630333402017057 0ustar # Khmer translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 #, fuzzy msgid "All Permissions" msgstr "សិទ្ធិ" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "លុប​" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "កែ​សម្រួល" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "អាន" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "បង្ហាញ" Horde_Perms-2.1.6/locale/ko/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000074212630333402017047 0ustar 4L`ahfmDeleteEditProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; 삭제수정Horde_Perms-2.1.6/locale/ko/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000167312630333402017056 0ustar # Korean translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/Horde/Perms.php:181 #, fuzzy msgid "All Permissions" msgstr "토론" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "삭제" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "수정" #: lib/Horde/Perms.php:525 #, fuzzy msgid "Read" msgstr "읽지 않은 메일" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/lt/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000117312630333402017054 0ustar Dl ZdktDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2011-05-28 01:09+0300 PO-Revision-Date: 2011-06-28 00:59+0300 Last-Translator: Vilius Šumskas Language-Team: Lithuanian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2); IštrintiKeistiSkaitytiRodytiHorde_Perms-2.1.6/locale/lt/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000170112630333402017054 0ustar # Lithuanian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Vilius Šumskas , 2011. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2011-05-28 01:09+0300\n" "PO-Revision-Date: 2011-06-28 00:59+0300\n" "Last-Translator: Vilius Šumskas \n" "Language-Team: Lithuanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Ištrinti" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Keisti" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Skaityti" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Rodyti" Horde_Perms-2.1.6/locale/lv/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000113112630333402017050 0ustar Dl=DJQDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2011-03-15 13:27+0100 PO-Revision-Date: 2011-10-16 15:22+0300 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org Language: lv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2); DzēstLabotLasītRādītHorde_Perms-2.1.6/locale/lv/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000221212630333402017054 0ustar # Latvian translations for Horde_Perms package. # Copyright 2011-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms package. # Automatically generated, 2011. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2011-03-15 13:27+0100\n" "PO-Revision-Date: 2011-10-16 15:22+0300\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "Language: lv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Dzēst" # #-#-#-#-# horde.po (Horde 2.1) #-#-#-#-# # #-#-#-#-# lv_LV.po (Mnemo 2.1.2) #-#-#-#-# # # #-#-#-#-# lv_LV.po (Gollem 1.0.3) #-#-#-#-# # #-#-#-#-# lv_LV.po (Mnemo 2.1.2) #-#-#-#-# # # #-#-#-#-# mnemo.po (Mnemo 2.1.2) #-#-#-#-# # #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Labot" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Lasīt" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Rādīt" Horde_Perms-2.1.6/locale/mk/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000065212630333402017045 0ustar ,<PQBXDeleteProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ИзбришиHorde_Perms-2.1.6/locale/mk/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000155512630333402017053 0ustar # Macedonian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Избриши" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/nb/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000114412630333402017032 0ustar L |m=NT\`All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Alle reddigheterSlettRedigerLesVisHorde_Perms-2.1.6/locale/nb/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000166612630333402017046 0ustar # Norwegian Bokmal translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Alle reddigheter" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Slett" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Rediger" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Les" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Vis" Horde_Perms-2.1.6/locale/nl/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000156712630333402017055 0ustar L |e%  }DeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2012-01-17 12:38+0100 PO-Revision-Date: 2012-11-02 23:16+0100 Last-Translator: Arjen de Korte Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Lokalize 1.4 VerwijderenBewerkenLezenWeergevenPoging om een onderliggend recht aan te maken van een niet bestaand bovenliggendrecht. Maak bovenliggend recht(en) eerst aan.Horde_Perms-2.1.6/locale/nl/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000234412630333402017052 0ustar # Dutch translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # # Arjen de Korte , 2012. msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2012-01-17 12:38+0100\n" "PO-Revision-Date: 2012-11-02 23:16+0100\n" "Last-Translator: Arjen de Korte \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.4\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Verwijderen" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Bewerken" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Lezen" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Weergeven" #: lib/Horde/Perms/Sql.php:205 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "Poging om een onderliggend recht aan te maken van een niet bestaand " "bovenliggendrecht. Maak bovenliggend recht(en) eerst aan." Horde_Perms-2.1.6/locale/nn/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000104212630333402017043 0ustar Dlm DeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); SletteEndreLesVisHorde_Perms-2.1.6/locale/nn/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000166612630333402017062 0ustar # Norwegian Nynorsk translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 #, fuzzy msgid "All Permissions" msgstr "Tilgang" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Slette" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Endre" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Les" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Vis" Horde_Perms-2.1.6/locale/pl/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000117412630333402017051 0ustar DlRhnuAll PermissionsDeleteEditShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Wszystkie uprawnieniaUsuńEdycjaPokażHorde_Perms-2.1.6/locale/pl/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000200012630333402017041 0ustar # Polish translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Wszystkie uprawnienia" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Usuń" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Edycja" #: lib/Horde/Perms.php:525 #, fuzzy msgid "Read" msgstr "Przeczytaj" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Pokaż" Horde_Perms-2.1.6/locale/pt/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000115512630333402017060 0ustar L |m=RZaeAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Todas as PermissõesRemoverEditarLerMostrarHorde_Perms-2.1.6/locale/pt/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000167112630333402017066 0ustar # Portuguese translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Todas as Permissões" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Remover" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Editar" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Ler" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Mostrar" Horde_Perms-2.1.6/locale/pt_BR/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000152112630333402017440 0ustar L |e%fDeleteEditReadShowTrying to create sub permission of non-existent parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2014-03-25 18:08+0100 PO-Revision-Date: 2013-11-21 22:59-0300 Last-Translator: Luis Felipe Marzagao Language-Team: i18n@lists.horde.org Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: Poedit 1.5.4 ExcluirEditarLerMostrarTentanto criar subpermissão de permissão mãe inexistente. Primeiro crie a(s) permissão(ões) mãe.Horde_Perms-2.1.6/locale/pt_BR/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000226112630333402017445 0ustar # Portuguese translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2014-03-25 18:08+0100\n" "PO-Revision-Date: 2013-11-21 22:59-0300\n" "Last-Translator: Luis Felipe Marzagao \n" "Language-Team: i18n@lists.horde.org\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 1.5.4\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Excluir" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Editar" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Ler" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Mostrar" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existent parent permission. Create " "parent permission(s) first." msgstr "" "Tentanto criar subpermissão de permissão mãe inexistente. Primeiro crie a(s) " "permissão(ões) mãe." Horde_Perms-2.1.6/locale/ro/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000072512630333402017057 0ustar $,89Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=ASCII Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2; Horde_Perms-2.1.6/locale/ro/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000167512630333402017067 0ustar # Romanian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ASCII\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "" Horde_Perms-2.1.6/locale/ru/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000134312630333402017062 0ustar L | All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Все праваУдалитьРедактированиеЧитатьПоказатьHorde_Perms-2.1.6/locale/ru/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000210712630333402017064 0ustar # Russian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" # fuzzy #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Все права" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Удалить" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Редактирование" # fuzzy #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Читать" # fuzzy #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Показать" Horde_Perms-2.1.6/locale/sk/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000156212630333402017054 0ustar L |e% DeleteEditReadShowTrying to create sub permission of non-existant parent permission. Create parent permission(s) first.Project-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2012-01-17 12:38+0100 PO-Revision-Date: 2012-12-30 17:54+0200 Last-Translator: Jozef Sudolsky Language-Team: i18n@lists.horde.org Language: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; VymazaťUpraviťČítaťZobraziťPokúšate sa vytvoriť podradené oprávnenie pre neexistujúce nadradené oprávnenie. Vytvorte najskôr nadradené oprávnenie.Horde_Perms-2.1.6/locale/sk/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000245112630333402017055 0ustar # Slovak translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # Martin Matuška , 2008 # Jozef Sudolský , 2012 # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2012-01-17 12:38+0100\n" "PO-Revision-Date: 2012-12-30 17:54+0200\n" "Last-Translator: Jozef Sudolsky \n" "Language-Team: i18n@lists.horde.org\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "Vymazať" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "Upraviť" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "Čítať" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "Zobraziť" #: lib/Horde/Perms/Sql.php:205 msgid "" "Trying to create sub permission of non-existant parent permission. Create " "parent permission(s) first." msgstr "" "Pokúšate sa vytvoriť podradené oprávnenie pre neexistujúce nadradené " "oprávnenie. Vytvorte najskôr nadradené oprávnenie." Horde_Perms-2.1.6/locale/sl/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000123312630333402017050 0ustar L |qAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3); Vsa dovoljenjaZbrišiUrediBeriPokažiHorde_Perms-2.1.6/locale/sl/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000175112630333402017060 0ustar # Slovenian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Vsa dovoljenja" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Zbriši" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Uredi" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Beri" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Pokaži" Horde_Perms-2.1.6/locale/sv/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000115012630333402017060 0ustar L |m=PW^cAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Alla behörigheterRaderaÄndraLäsVisaHorde_Perms-2.1.6/locale/sv/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000166112630333402017072 0ustar # Swedish translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Alla behörigheter" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Radera" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Ändra" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Läs" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Visa" Horde_Perms-2.1.6/locale/tr/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000113712630333402017062 0ustar L |f 6DHQWAll PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; Tüm İzinlerSilDüzenleOkumaGösterHorde_Perms-2.1.6/locale/tr/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000165012630333402017065 0ustar # Turkish translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Tüm İzinler" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Sil" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Düzenle" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Okuma" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Göster" Horde_Perms-2.1.6/locale/uk/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000133312630333402017052 0ustar L | All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); Всі ПраваВитертиРедагуватиЧитатиПоказатиHorde_Perms-2.1.6/locale/uk/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000205112630333402017053 0ustar # Ukrainian translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "Всі Права" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "Витерти" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "Редагувати" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "Читати" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "Показати" Horde_Perms-2.1.6/locale/zh_CN/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000107312630333402017435 0ustar L |B &-4All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 所有权限删除编辑读取显示Horde_Perms-2.1.6/locale/zh_CN/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000160012630333402017434 0ustar # Chinese translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "所有权限" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "删除" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "编辑" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "读取" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "显示" Horde_Perms-2.1.6/locale/zh_TW/LC_MESSAGES/Horde_Perms.mo0000664000076500000240000000107312630333402017467 0ustar L |B &-4All PermissionsDeleteEditReadShowProject-Id-Version: Horde_Perms Report-Msgid-Bugs-To: dev@lists.horde.org POT-Creation-Date: 2010-10-13 01:27+0200 PO-Revision-Date: 2010-10-13 01:27+0200 Last-Translator: Automatically generated Language-Team: i18n@lists.horde.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 所有權限刪除編輯讀取顯示Horde_Perms-2.1.6/locale/zh_TW/LC_MESSAGES/Horde_Perms.po0000664000076500000240000000160012630333402017466 0ustar # Chinese translations for Horde_Perms module. # Copyright 2010-2015 Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms module. # Automatically generated, 2010. # msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2010-10-13 01:27+0200\n" "PO-Revision-Date: 2010-10-13 01:27+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: i18n@lists.horde.org\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:181 msgid "All Permissions" msgstr "所有權限" #: lib/Horde/Perms.php:527 msgid "Delete" msgstr "刪除" #: lib/Horde/Perms.php:526 msgid "Edit" msgstr "編輯" #: lib/Horde/Perms.php:525 msgid "Read" msgstr "讀取" #: lib/Horde/Perms.php:524 msgid "Show" msgstr "顯示" Horde_Perms-2.1.6/locale/Horde_Perms.pot0000664000076500000240000000170412630333402015037 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Horde LLC (http://www.horde.org/) # This file is distributed under the same license as the Horde_Perms package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Horde_Perms\n" "Report-Msgid-Bugs-To: dev@lists.horde.org\n" "POT-Creation-Date: 2014-03-25 18:08+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: lib/Horde/Perms.php:69 msgid "Delete" msgstr "" #: lib/Horde/Perms.php:68 msgid "Edit" msgstr "" #: lib/Horde/Perms.php:67 msgid "Read" msgstr "" #: lib/Horde/Perms.php:66 msgid "Show" msgstr "" #: lib/Horde/Perms/Sql.php:206 msgid "" "Trying to create sub permission of non-existent parent permission. Create " "parent permission(s) first." msgstr "" Horde_Perms-2.1.6/migration/Horde/Perms/1_horde_perms_base_tables.php0000664000076500000240000000136512630333402022554 0ustar tables())) { $t = $this->createTable('horde_perms', array('autoincrementKey' => array('perm_id'))); $t->column('perm_id', 'integer', array('null' => false)); $t->column('perm_name', 'string', array('limit' => 255, 'null' => false)); $t->column('perm_parents', 'string', array('limit' => 255, 'null' => false)); $t->column('perm_data', 'text'); $t->end(); $this->addIndex('horde_perms', array('perm_name'), array('unique' => true)); } } public function down() { $this->dropTable('horde_perms'); } } Horde_Perms-2.1.6/migration/Horde/Perms/2_horde_perms_upgrade_autoincrement.php0000664000076500000240000000066312630333402024675 0ustar changeColumn('horde_perms', 'perm_id', 'autoincrementKey'); try { $this->dropTable('horde_perms_seq'); } catch (Horde_Db_Exception $e) { } } public function down() { $this->changeColumn('horde_perms', 'perm_id', 'integer', array('null' => false)); } }Horde_Perms-2.1.6/migration/Horde/Perms/3_horde_perms_upgrade_parent_null.php0000664000076500000240000000056512630333402024345 0ustar changeColumn('horde_perms', 'perm_parents', 'string', array('limit' => 255, 'null' => true)); } public function down() { $this->changeColumn('horde_perms', 'perm_parents', 'string', array('limit' => 255, 'null' => false)); } }Horde_Perms-2.1.6/test/Horde/Perms/AllTests.php0000664000076500000240000000013212630333402016211 0ustar run(); Horde_Perms-2.1.6/test/Horde/Perms/bootstrap.php0000664000076500000240000000014312630333402016475 0ustar * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ /** * Test the Kolab permission handler. * * Copyright 2008-2015 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (LGPL). If you * did not receive this file, see http://www.horde.org/licenses/lgpl21. * * @category Horde * @package Perms * @subpackage UnitTests * @author Gunnar Wrobel * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1 * @link http://pear.horde.org/index.php?package=Perms */ class Horde_Perms_KolabTest extends PHPUnit_Framework_TestCase { public function setUp() { $this->storage = $this->getMock('Horde_Perms_Permission_Kolab_Storage'); $this->storage->expects($this->once()) ->method('getPermissionId') ->will($this->returnValue('test')); $this->groups = $this->getMock('Horde_Group_Base', array(), array(), '', false, false); $this->perms = new Horde_Perms_Null(); } public function testConstruct() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('test' => 'l'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertEquals('matrix', $permission->get('type')); } public function testImapListAclResultsInShowPermission() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('test' => 'l'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertTrue((bool) $this->perms->hasPermission($permission, 'test', Horde_Perms::SHOW)); } public function testImapReadAclResultsInReadPermission() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('test' => 'r'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertTrue((bool) $this->perms->hasPermission($permission, 'test', Horde_Perms::READ)); } public function testImapEditAclResultsInEditPermission() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('test' => 'i'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertTrue((bool) $this->perms->hasPermission($permission, 'test', Horde_Perms::EDIT)); } public function testImapDeleteAclResultsInDeletePermission() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('test' => 'd'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertTrue((bool) $this->perms->hasPermission($permission, 'test', Horde_Perms::DELETE)); } public function testImapTAclResultsInDeletePermission() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('test' => 't'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertTrue((bool) $this->perms->hasPermission($permission, 'test', Horde_Perms::DELETE)); } public function testImapAnonymousUserMapsToGuestUsers() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('anonymous' => 'lrid'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertEquals(Horde_Perms::ALL, $permission->getGuestPermissions()); } public function testImapAnyoneUserMapsToDefaultUsers() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('anyone' => 'lrid'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertEquals(Horde_Perms::ALL, $permission->getDefaultPermissions()); } public function testImapGroupMapsToHordeGroup() { $this->storage->expects($this->once()) ->method('getAcl') ->will($this->returnValue(array('group:test' => 'lrid'))); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $this->assertEquals(array('test' => Horde_Perms::ALL), $permission->getGroupPermissions()); } public function testShowPermissionResultsInImapListAcl() { $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('test', 'l'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addUserPermission('test', Horde_Perms::SHOW); } public function testReadPermissionResultsInImapReadAcl() { $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('test', 'r'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addUserPermission('test', Horde_Perms::READ, true); } public function testEditPermissionResultsInImapEditAcl() { $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('test', 'iswc'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addUserPermission('test', Horde_Perms::EDIT, true); } public function testDeletePermissionResultsInImapDeleteAcl() { $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('test', 'd'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addUserPermission('test', Horde_Perms::DELETE, true); } public function testGuestUsersMapsToImapAnonymousUser() { $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('anonymous', 'lriswcd'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addGuestPermission(Horde_Perms::ALL, true); } public function testDefaultUsersMapsToImapAnyoneUser() { $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('anyone', 'lriswcd'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addDefaultPermission(Horde_Perms::ALL, true); } public function testHordeGroupMapsToImapGroup() { $this->groups->expects($this->once()) ->method('getName') ->with('horde_test') ->will($this->returnValue('test')); $this->storage->expects($this->exactly(3)) ->method('getAcl') ->will($this->returnValue(array())); $this->storage->expects($this->once()) ->method('setAcl') ->with('group:test', 'lriswcd'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); $permission->addGroupPermission('horde_test', Horde_Perms::ALL, true); } public function testGetType() { $this->assertEquals( 'matrix', $this->_getComplexPermissions()->get('type') ); } public function testGetName() { $this->assertEquals( 'Horde_Perms_Permission_Kolab::test', $this->_getComplexPermissions()->getName() ); } public function testSetName() { $permission = $this->_getComplexPermissions(); $permission->setName('DUMMY'); $this->assertEquals('DUMMY', $permission->getName()); } public function testDoNotRemoveGuestPermissions() { $this->storage->expects($this->any()) ->method('getOwner') ->will($this->returnValue('test')); $this->storage->expects($this->exactly(1)) ->method('getAcl') ->will($this->returnValue(array('anonymous' => 'lrid'))); $this->storage->expects($this->never()) ->method('deleteAcl'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); } public function testDoNotRemoveDefaultPermissions() { $this->storage->expects($this->any()) ->method('getOwner') ->will($this->returnValue('test')); $this->storage->expects($this->exactly(1)) ->method('getAcl') ->will($this->returnValue(array('anyone' => 'lrid'))); $this->storage->expects($this->never()) ->method('deleteAcl'); $permission = new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); } private function _getComplexPermissions() { $this->storage->expects($this->any()) ->method('getAcl') ->will( $this->returnValue( array( 'wrobel' => 'lrid', 'reader' => 'lr', 'viewer' => 'l', 'editor' => 'lre', 'anyone' => 'l', 'anonymous' => '', 'group:editors' => 'lre' ) ) ); return new Horde_Perms_Permission_Kolab( $this->storage, $this->groups ); } } Horde_Perms-2.1.6/test/Horde/Perms/phpunit.xml0000664000076500000240000000030612630333402016161 0ustar ../../../lib