Blame Identity/Models/Html/phpBB/3.0.4/docs/auth_api.html

d6e8d8
d6e8d8
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en" xml:lang="en">
d6e8d8
<head>
d6e8d8
d6e8d8
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
d6e8d8
<meta http-equiv="content-style-type" content="text/css" />
d6e8d8
<meta http-equiv="content-language" content="en" />
d6e8d8
<meta http-equiv="imagetoolbar" content="no" />
d6e8d8
<meta name="resource-type" content="document" />
d6e8d8
<meta name="distribution" content="global" />
d6e8d8
<meta name="copyright" content="2007 phpBB Group" />
d6e8d8
<meta name="keywords" content="" />
d6e8d8
<meta name="description" content="This is an explanation of how to use the phpBB auth/acl API" />
d6e8d8
<title>phpBB3 • Auth API</title>
d6e8d8
d6e8d8
<link href="stylesheet.css" rel="stylesheet" type="text/css" media="screen, projection" />
d6e8d8
d6e8d8
</head>
d6e8d8
d6e8d8
<body id="phpbb" class="section-docs">
d6e8d8
d6e8d8
d6e8d8
	
d6e8d8
	
d6e8d8
		
d6e8d8
			
d6e8d8
d6e8d8
			
d6e8d8
				
d6e8d8
				

Auth API

d6e8d8
				

This is an explanation of how to use the phpBB auth/acl API

d6e8d8
				

Skip

d6e8d8
			
d6e8d8
d6e8d8
			
d6e8d8
		
d6e8d8
	
d6e8d8
d6e8d8
	
d6e8d8
d6e8d8
	
d6e8d8
d6e8d8
d6e8d8
d6e8d8
	

This is an explanation of how to use the phpBB auth/acl API.

d6e8d8
d6e8d8
	

Auth API

d6e8d8
d6e8d8
	
d6e8d8
		
d6e8d8
d6e8d8
		
d6e8d8
d6e8d8
    d6e8d8
    	
  1. Introduction
  2. d6e8d8
    	
  3. Methods
  4. d6e8d8
    	
      d6e8d8
      		
    1. acl
    2. d6e8d8
      		
    3. acl_get
    4. d6e8d8
      		
    5. acl_gets
    6. d6e8d8
      		
    7. acl_getf
    8. d6e8d8
      		
    9. acl_getf_global
    10. d6e8d8
      		
    11. acl_cache
    12. d6e8d8
      	
      d6e8d8
      	
      d6e8d8
      	
    13. Admin related functions
    14. d6e8d8
      	
    15. Copyright and disclaimer
    16. d6e8d8
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	
      d6e8d8
      d6e8d8

      1. Introduction

      d6e8d8
      d6e8d8
      	
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      	

      What is it?

      d6e8d8
      d6e8d8
      	

      The auth class contains methods related to authorisation users to access various board functions, e.g. posting, viewing, replying, logging in (and out), etc. If you need to check whether a user can carry out a task or handle user login/logouts this class is required.

      d6e8d8
      d6e8d8
      	

      Initialisation

      d6e8d8
      d6e8d8
      	

      To use any methods contained with the auth class it first needs to be instantiated. This is best achieved early in the execution of the script in the following manner:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $auth = new auth();
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      Once an instance of the class has been created you are free to call the various methods it contains. Please note that should you wish to use the auth_admin methods you will need to instantiate this separately but in the same way.

      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	
      d6e8d8
      d6e8d8

      2. Methods

      d6e8d8
      d6e8d8
      	
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      	

      Following are the methods you are able to use.

      d6e8d8
      d6e8d8
      	

      2.i. acl

      d6e8d8
      	
      d6e8d8
      	

      The acl method is the initialisation routine for all the acl functions. If you intend calling any acl method you must first call this. The method takes as its one and only required parameter an associative array containing user information as stored in the database. This array must contain at least the following information; user_id, user_permissions and user_type. It is called in the following way:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $auth->acl(userdata);
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      Where userdata is the array containing the aforementioned data.

      d6e8d8
      d6e8d8
      	

      2.ii. acl_get

      d6e8d8
      d6e8d8
      	

      This method is the primary way of determining what a user can and cannot do for a given option globally or in a given forum. The method should be called in the following way:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $result = $auth->acl_get(option[, forum]);
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      Where option is a string representing the required option, e.g. 'f_list', 'm_edit', 'a_adduser', etc. By adding a ! in front of the option, e.g. '!f_list' the result of this method will be negated. The optional forum term is the integer forum_id.

      d6e8d8
      d6e8d8
      	

      The method returns a positive integer when the user is allowed to carry out the option and a zero if denied or the other way around if the option is prefixed with an exclamation mark.

      d6e8d8
      d6e8d8
      	

      If you specify a forum and there is also a global setting for the specified option then this method will return a positive integer if one of them evaluates to a positive integer. An example would be the m_approve option which can be set per forum but also globally. If a user has the global option he will automatically have m_approve in every forum.

      d6e8d8
      d6e8d8
      	

      There are some special options or flags which are used as prefixes for other options, e.g. 'f_' or 'm_'. These flags will automatically be set to a positive integer if the user has one or more permissions with the given prefix. A local setting will result in the flag being set only locally (so it will require a forum id to retrieve). If a user has one or more global permissions with the prefix acl_get will return a positive integer regardless of the forum id.

      d6e8d8
      d6e8d8
      	

      2.iii. acl_gets

      d6e8d8
      d6e8d8
      	

      This method is funtionally similar to acl_get in that it returns information on whether a user can or cannot carry out a given task. The difference here is the ability to test several different options in one go. This may be useful for testing whether a user is a moderator or an admin in one call. Rather than having to call and check acl_get twice.

      d6e8d8
      d6e8d8
      	

      The method should be called thus:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $result = $auth->acl_gets(option1[, option2, ..., optionN, forum]);
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      As with the acl_get method the options are strings representing the required permissions to check. The forum again is an integer representing a given forum_id.

      d6e8d8
      d6e8d8
      	

      The method will return a positive integer if acl_get for one of the options evaluates to a positive integer (combines permissions with OR).

      d6e8d8
      d6e8d8
      	

      2.iv. acl_getf

      d6e8d8
      d6e8d8
      	

      This method is used to find out in which forums a user is allowed to carry out an operation or to find out in which forums he is not allowed to carry out an operation. The method should be called in the following way:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $result = $auth->acl_getf(option[, clean]);
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      Just like in the acl_get method the option is a string specifying the permission which has to be checked (negation using ! is allowed). The second parameter is a boolean. If it is set to false this method returns all forums with either zero or a positive integer. If it is set to true only those forums with a positive integer as the result will be returned.

      d6e8d8
      d6e8d8
      	

      The method returns an associative array of the form:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      array(forum_id1 => array(option => integer), forum_id2 => ...)
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      Where option is the option passed to the method and integer is either zero or a positive integer and the same acl_get(option, forum_id) would return.

      d6e8d8
      d6e8d8
      	

      2.v. acl_getf_global

      d6e8d8
      d6e8d8
      	

      This method is used to find out whether a user has a permission in at least one forum or globally. This method is similar to checking whether acl_getf(option, true) returned one or more forums but it's faster. It should be called in the following way:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $result = acl_getf_global(option)
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      As with the previous methods option is a string specifying the permission which has to be checked.

      d6e8d8
      d6e8d8
      	

      This method returns either zero or a positive integer.

      d6e8d8
      d6e8d8
      	

      2.vi. acl_cache

      d6e8d8
      d6e8d8
      	

      This should be considered a private method and not be called externally. It handles the generation of the user_permissions data from the basic user and group authorisation data. When necessary this method is called automatically by acl.

      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	
      d6e8d8
      d6e8d8

      3. Admin related functions

      d6e8d8
      d6e8d8
      	
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      	

      A number of additional methods are available related to auth. These handle more basic functions such as adding user and group permissions, new options and clearing the user cache. These methods are contained within a separate class, auth_admin. This can be found in includes/acp/auth.php.

      d6e8d8
      d6e8d8
      	

      To use any methods this class contains it first needs to be instantiated separately from auth. This is achieved in the same way as auth:

      d6e8d8
      d6e8d8
      	
      d6e8d8
      $auth_admin = new auth_admin();
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	

      This instance gives you access to both the methods of this specific class and that of auth.

      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      	
      d6e8d8
      d6e8d8
      	
      d6e8d8
      d6e8d8

      4. Copyright and disclaimer

      d6e8d8
      d6e8d8
      	
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      	

      This application is opensource software released under the GPL. Please see source code and the docs directory for more details. This package and its contents are Copyright (c) 2000, 2002, 2005, 2007 phpBB Group, All Rights Reserved.

      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      d6e8d8
      		
      d6e8d8
      	
      d6e8d8
      d6e8d8
      d6e8d8
      d6e8d8
      	
      d6e8d8
      		
      $Id: auth_api.html 8479 2008-03-29 00:22:48Z naderman $
      d6e8d8
      	
      d6e8d8
      d6e8d8
      d6e8d8
      d6e8d8
      	
      d6e8d8
      d6e8d8
      d6e8d8
      </body>
      d6e8d8
      </html>