aboutsummaryrefslogtreecommitdiffstats
path: root/include/Contact.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-10-28 18:50:35 -0700
committerfriendica <info@friendica.com>2012-10-28 18:50:35 -0700
commit4bcf19632bc5158095a5d2d5d63dea1b25b146b7 (patch)
tree362ccfbd661b779bd864fa6c7416c9a7b1c15069 /include/Contact.php
parent1a9ab127482ee4eb17e3d2bd0ffa222f7053715b (diff)
downloadvolse-hubzilla-4bcf19632bc5158095a5d2d5d63dea1b25b146b7.tar.gz
volse-hubzilla-4bcf19632bc5158095a5d2d5d63dea1b25b146b7.tar.bz2
volse-hubzilla-4bcf19632bc5158095a5d2d5d63dea1b25b146b7.zip
Now have a solid permissions model. Create a few functions to enumerate them and then we're off to the races.
Diffstat (limited to 'include/Contact.php')
-rw-r--r--include/Contact.php93
1 files changed, 0 insertions, 93 deletions
diff --git a/include/Contact.php b/include/Contact.php
index fc0a6dd25..f442f112c 100644
--- a/include/Contact.php
+++ b/include/Contact.php
@@ -1,100 +1,7 @@
<?php
-function map_perms($channel,$zguid,$zsig) {
- $is_contact = false;
- $is_site = false;
- $is_network = false;
- $is_anybody = true;
-
-
- // To avoid sending the lengthy target_sig with each request,
- // We should provide an array of results for each target
- // and let the sender match the signature.
-
- if(strlen($zguid) && strlen($zsig)) {
-
- $is_network = true;
-
- $r = q("select * from contact where guid = '%s' and uid = %d limit 1",
- dbesc($zguid),
- intval($channel['channel_id'])
- );
- if($r && count($r)) {
- $is_contact = true;
- $contact = $r[0];
- }
- $r = q("select * from channel where channel_guid = '%s'",
- dbesc($zguid)
- );
- if($r && count($r)) {
- foreach($r as $rr) {
- if(base64url_encode(rsa_sign($rr['channel_guid'],$rr['channel_prvkey'])) === $zsig) {
- $is_site = true;
- break;
- }
- }
- }
- }
-
- $perms = array(
- 'view_stream' => array('channel_r_stream', PERMS_R_STREAM ),
- 'view_profile' => array('channel_r_profile', PERMS_R_PROFILE),
- 'view_photos' => array('channel_r_photos', PERMS_R_PHOTOS),
- 'view_contacts' => array('channel_r_abook', PERMS_R_ABOOK),
-
- 'send_stream' => array('channel_w_stream', PERMS_W_STREAM),
- 'post_wall' => array('channel_w_wall', PERMS_W_WALL),
- 'tag_deliver' => array('channel_w_tagwall', PERMS_W_TAGWALL),
- 'post_comments' => array('channel_w_comment', PERMS_W_COMMENT),
- 'post_mail' => array('channel_w_mail', PERMS_W_MAIL),
- 'post_photos' => array('channel_w_photos', PERMS_W_PHOTOS),
- 'chat' => array('channel_w_chat', PERMS_W_CHAT),
- );
-
-
- $ret = array();
-
- foreach($perms as $k => $v) {
- $ret[$k] = z_check_perms($k,$v,$channel,$contact,$is_contact,$is_site,$is_network,$is_anybody);
-
- }
-
- return $ret;
-
-}
-
-function z_check_perms($k,$v,$channel,$contact,$is_contact,$is_site,$is_network,$is_anybody) {
-
- $allow = (($contact['self']) ? true : false);
-
- switch($channel[$v[0]]) {
- case PERMS_PUBLIC:
- if($is_anybody)
- $allow = true;
- break;
- case PERMS_NETWORK:
- if($is_network)
- $allow = true;
- break;
- case PERMS_SITE:
- if($is_site)
- $allow = true;
- break;
- case PERMS_CONTACTS:
- if($is_contact)
- $allow = true;
- break;
- case PERMS_SPECIFIC:
- if($is_contact && is_array($contact) && ($contact['my_perms'] & $v[1]))
- $allow = true;
- break;
- default:
- break;
- }
- return $allow;
-}