mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-03-28 17:42:57 +01:00
http://forum.phpwebgallery.net/viewtopic.php?pid=92097#p92097 A plugin to integrate the menu class see test_menu directory A plugin to show how to use the menu class see AMenuManager directory And common classes needed for the AMenuManager plugin see grum_plugins_classes-2 directory See topic http://forum.phpwebgallery.net/viewtopic.php?pid=92637#p92637 for more informations git-svn-id: http://piwigo.org/svn/trunk@2466 68402e56-0260-453c-a942-63ccdbb3a9ee
290 lines
6.1 KiB
PHP
Executable File
290 lines
6.1 KiB
PHP
Executable File
<?php
|
|
|
|
/* -----------------------------------------------------------------------------
|
|
class name: allowed_access, groups, users
|
|
class version: 1.0
|
|
date: 2007-10-31
|
|
------------------------------------------------------------------------------
|
|
author: grum at grum.dnsalias.com
|
|
<< May the Little SpaceFrog be with you >>
|
|
------------------------------------------------------------------------------
|
|
|
|
this classes provides base functions to manage users/groups access
|
|
groups and users classes extends allowed_access classes
|
|
|
|
- constructor allowed_access($alloweds="")
|
|
- constructor groups($alloweds="")
|
|
- constructor users($alloweds="")
|
|
- (public) function get_list()
|
|
- (public) function set_allowed($id, $allowed)
|
|
- (public) function set_alloweds()
|
|
- (public) function get_alloweds($return_type)
|
|
- (public) function is_allowed($id)
|
|
- (public) function html_view($sep=", ", $empty="")
|
|
- (public) function html_form($basename)
|
|
- (private) function init_list()
|
|
---------------------------------------------------------------------- */
|
|
class allowed_access
|
|
{
|
|
var $access_list;
|
|
|
|
/*
|
|
constructor initialize the groups_list
|
|
*/
|
|
function allowed_access($alloweds = "")
|
|
{
|
|
$this->init_list();
|
|
$this->set_alloweds($alloweds);
|
|
}
|
|
|
|
/*
|
|
initialize the groups list
|
|
*/
|
|
function init_list()
|
|
{
|
|
$this->access_list=array();
|
|
}
|
|
|
|
/*
|
|
returns list (as an array)
|
|
*/
|
|
function get_list()
|
|
{
|
|
return($this->access_list);
|
|
}
|
|
|
|
/*
|
|
set element an allowed state
|
|
*/
|
|
function set_allowed($id, $allowed)
|
|
{
|
|
if(isset($this->access_list[$id]))
|
|
{
|
|
$this->access_list[$id]['allowed']=$allowed;
|
|
}
|
|
}
|
|
|
|
/*
|
|
set a group enabled/disabled state
|
|
*/
|
|
function set_state($id, $enabled)
|
|
{
|
|
if(isset($this->access_list[$id]))
|
|
{
|
|
$this->access_list[$id]['enabled']=$enabled;
|
|
}
|
|
}
|
|
|
|
/*
|
|
set alloweds list
|
|
$list is string of id, separated with "/"
|
|
*/
|
|
function set_alloweds($list)
|
|
{
|
|
$alloweds=explode("/", $list);
|
|
$alloweds=array_flip($alloweds);
|
|
foreach($this->access_list as $key => $val)
|
|
{
|
|
if(isset($alloweds[$key]))
|
|
{
|
|
$this->access_list[$key]['allowed']=true;
|
|
}
|
|
else
|
|
{
|
|
$this->access_list[$key]['allowed']=false;
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
get alloweds list
|
|
return a string of groups, separated with "/"
|
|
*/
|
|
function get_alloweds($return_type = 'name')
|
|
{
|
|
$returned="";
|
|
foreach($this->access_list as $key => $val)
|
|
{
|
|
if($val['allowed'])
|
|
{ $returned.=$val[$return_type]."/"; }
|
|
}
|
|
return($returned);
|
|
}
|
|
|
|
|
|
/*
|
|
returns true if is allowed
|
|
*/
|
|
function is_allowed($id)
|
|
{
|
|
if(isset($this->access_list[$id]))
|
|
{ return($this->access_list[$id]['allowed']); }
|
|
else
|
|
{ return(false); }
|
|
}
|
|
|
|
/*
|
|
returns true if all or one is allowed
|
|
ids is an array
|
|
*/
|
|
function are_allowed($ids, $all=false)
|
|
{
|
|
foreach($ids as $val)
|
|
{
|
|
if($all)
|
|
{
|
|
if(!$this->is_allowed($val))
|
|
{
|
|
return(false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if($this->is_allowed($val))
|
|
{
|
|
return(true);
|
|
}
|
|
}
|
|
}
|
|
return(false);
|
|
}
|
|
|
|
/*
|
|
returns an HTML list with label rather than id
|
|
*/
|
|
function html_view($sep=", ", $empty="")
|
|
{
|
|
$returned="";
|
|
foreach($this->access_list as $key => $val)
|
|
{
|
|
if($val['allowed'])
|
|
{
|
|
if($returned!="")
|
|
{
|
|
$returned.=$sep;
|
|
}
|
|
$returned.=$val['name'];
|
|
}
|
|
}
|
|
if($returned=="")
|
|
{
|
|
$returned=$empty;
|
|
}
|
|
return($returned);
|
|
}
|
|
/*
|
|
returns a generic HTML form to manage the groups access
|
|
*/
|
|
function html_form($basename)
|
|
{
|
|
/*
|
|
<!-- BEGIN allowed_group_row -->
|
|
<label><input type="checkbox" name="fmypolls_att_allowed_groups_{allowed_group_row.ID}" {allowed_group_row.CHECKED}/> {allowed_group_row.NAME}</label>
|
|
<!-- END allowed_group_row -->
|
|
*/
|
|
$text='';
|
|
foreach($this->access_list as $key => $val)
|
|
{
|
|
if($val['allowed'])
|
|
{
|
|
$checked=' checked';
|
|
}
|
|
else
|
|
{
|
|
$checked='';
|
|
}
|
|
|
|
if($val['enabled'])
|
|
{
|
|
$enabled='';
|
|
}
|
|
else
|
|
{
|
|
$enabled=' disabled';
|
|
}
|
|
|
|
$text.='<label><input type="checkbox" name="'.$basename.$val['id'].'" '.$checked.$enabled.'/>
|
|
'.$val['name'].'</label> ';
|
|
}
|
|
return($text);
|
|
}
|
|
} //allowed_access
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------
|
|
this class provides base functions to manage groups access
|
|
init_list redefined to initialize access_list from database GROUPS
|
|
---------------------------------------------------------------------- */
|
|
class groups extends allowed_access
|
|
{
|
|
/*
|
|
initialize the groups list
|
|
*/
|
|
function init_list()
|
|
{
|
|
$this->access_list=array();
|
|
$sql="SELECT id, name FROM ".GROUPS_TABLE." ORDER BY name";
|
|
$result=pwg_query($sql);
|
|
if($result)
|
|
{
|
|
while($row=mysql_fetch_assoc($result))
|
|
{
|
|
$this->access_list[$row['id']] =
|
|
array('id' => $row['id'],
|
|
'name' => $row['name'],
|
|
'allowed' => false,
|
|
'enabled' => true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -----------------------------------------------------------------------------
|
|
this class provides base functions to manage users access
|
|
----------------------------------------------------------------------------- */
|
|
class users extends allowed_access
|
|
{
|
|
/*
|
|
constructor
|
|
*/
|
|
function users($alloweds = "")
|
|
{
|
|
parent::allowed_access($alloweds);
|
|
$this->set_state('admin', false);
|
|
$this->set_allowed('admin', true);
|
|
}
|
|
|
|
/*
|
|
initialize the groups list
|
|
*/
|
|
function init_list()
|
|
{
|
|
$users_list = array('guest', 'generic', 'normal', 'admin');
|
|
$this->access_list=array();
|
|
foreach($users_list as $val)
|
|
{
|
|
$this->access_list[$val] =
|
|
array('id' => $val,
|
|
'name' => l10n('user_status_'.$val),
|
|
'allowed' => false,
|
|
'enabled' => true);
|
|
}
|
|
}
|
|
} //class users
|
|
|
|
|
|
|
|
?>
|