aboutsummaryrefslogblamecommitdiffstats
path: root/Zotlabs/Access/PermissionLimits.php
blob: ef254c3cf1b8bad5f5b0a5ef14fc631332482838 (plain) (tree)
1
2
3
4
5




                         












                                                             







                                                                                                 
                                                           
















                                                                                                         
                                                    













                                                                                   
<?php

namespace Zotlabs\Access;

class PermissionLimits {

	static public function Std_Limits() {
		$perms = Permissions::Perms();
		$limits = array();
		foreach($perms as $k => $v) {
			if(strstr($k,'view'))
				$limits[$k] = PERMS_PUBLIC;
			else
				$limits[$k] = PERMS_SPECIFIC;
		}
		return $limits;
	}

	static public function Set($channel_id,$perm,$perm_limit) {
		$r = q("select * from perm_limits where channel_id = %d and perm = '%s' limit 1",
			intval($channel_id),
			dbesc($perm)
		);
		if($r) {
			if($r[0]['perm_limit'] != $perm_limit) {
				$x = q("update perm_limits set perm_limit = %d where id = %d",
					dbesc($perm_limit),
					intval($r[0]['id'])
				);
			}
		}
		else {
			$r = q("insert into perm_limits ( perm, channel_id, perm_limit ) 
				values ( '%s', %d, %d ) ",
				dbesc($perm),
				intval($channel_id),
				intval($perm_limit)
			);
		}
	}

	static public function Get($channel_id,$perm = '') {
		if($perm) {
			$r = q("select * from perm_limits where channel_id = %d and perm = '%s' limit 1",
				intval($channel_id),
				dbesc($perm)
			);
			if($r)
				return $r[0];
			return false;
		}
		else {
			return q("select * from perm_limits where channel_id = %d",
				intval($channel_id)
			);
		}
	}	

}