aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Access/PermissionLimits.php
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs/Access/PermissionLimits.php')
-rw-r--r--Zotlabs/Access/PermissionLimits.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/Zotlabs/Access/PermissionLimits.php b/Zotlabs/Access/PermissionLimits.php
new file mode 100644
index 000000000..ef254c3cf
--- /dev/null
+++ b/Zotlabs/Access/PermissionLimits.php
@@ -0,0 +1,59 @@
+<?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)
+ );
+ }
+ }
+
+} \ No newline at end of file