diff options
author | friendica <info@friendica.com> | 2013-12-07 13:05:17 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-12-07 13:05:17 -0800 |
commit | 6dc157a9f9f46dbb4fe694d32e733eb1a2f5444f (patch) | |
tree | 5ed0d5230fe7c1ab7a242dd3e58559ddf4780f35 | |
parent | e33d9d358a8cee4851e7db22258bc70c9ac9dab3 (diff) | |
download | volse-hubzilla-6dc157a9f9f46dbb4fe694d32e733eb1a2f5444f.tar.gz volse-hubzilla-6dc157a9f9f46dbb4fe694d32e733eb1a2f5444f.tar.bz2 volse-hubzilla-6dc157a9f9f46dbb4fe694d32e733eb1a2f5444f.zip |
finish ACL's in personal menus
-rw-r--r-- | include/contact_widgets.php | 10 | ||||
-rw-r--r-- | include/menu.php | 70 | ||||
-rw-r--r-- | mod/mitem.php | 45 | ||||
-rw-r--r-- | view/js/mod_mitem.js | 22 | ||||
-rw-r--r-- | view/tpl/mitemedit.tpl | 20 |
5 files changed, 128 insertions, 39 deletions
diff --git a/include/contact_widgets.php b/include/contact_widgets.php index ddc89346a..2fa5dee0b 100644 --- a/include/contact_widgets.php +++ b/include/contact_widgets.php @@ -170,14 +170,16 @@ function suggest_widget() { // This will throw some entropy intot he situation so you won't // be looking at the same two mug shots every time the widget runs - $index = mt_rand(0,count($r) - 2); - - + + $index = ((count($r) > 2) ? mt_rand(0,count($r) - 2) : 0); + for($x = $index; $x <= ($index+1); $x ++) { $rr = $r[$x]; - + if(! $rr['xchan_url']) + break; + $connlnk = z_root() . '/follow/?url=' . $rr['xchan_addr']; $arr[] = array( diff --git a/include/menu.php b/include/menu.php index 900b48e65..c10a669b3 100644 --- a/include/menu.php +++ b/include/menu.php @@ -196,6 +196,31 @@ function menu_add_item($menu_id, $uid, $arr) { $mitem_desc = escape_tags($arr['mitem_desc']); $mitem_order = intval($arr['mitem_order']); $mitem_flags = intval($arr['mitem_flags']); + + if(local_user() == $uid) { + $channel = get_app()->get_channel(); + } + + if ((! $arr['contact_allow']) + && (! $arr['group_allow']) + && (! $arr['contact_deny']) + && (! $arr['group_deny'])) { + $str_group_allow = $channel['channel_allow_gid']; + $str_contact_allow = $channel['channel_allow_cid']; + $str_group_deny = $channel['channel_deny_gid']; + $str_contact_deny = $channel['channel_deny_cid']; + } + else { + + // use the posted permissions + + $str_group_allow = perms2str($arr['group_allow']); + $str_contact_allow = perms2str($arr['contact_allow']); + $str_group_deny = perms2str($arr['group_deny']); + $str_contact_deny = perms2str($arr['contact_deny']); + } + + $allow_cid = perms2str($arr['allow_cid']); $allow_gid = perms2str($arr['allow_gid']); $deny_cid = perms2str($arr['deny_cid']); @@ -205,10 +230,10 @@ function menu_add_item($menu_id, $uid, $arr) { dbesc($mitem_link), dbesc($mitem_desc), intval($mitem_flags), - dbesc($allow_cid), - dbesc($allow_gid), - dbesc($deny_cid), - dbesc($deny_gid), + dbesc($str_contact_allow), + dbesc($str_group_allow), + dbesc($str_contact_deny), + dbesc($str_group_deny), intval($uid), intval($menu_id), intval($mitem_order) @@ -225,19 +250,40 @@ function menu_edit_item($menu_id, $uid, $arr) { $mitem_desc = escape_tags($arr['mitem_desc']); $mitem_order = intval($arr['mitem_order']); $mitem_flags = intval($arr['mitem_flags']); - $allow_cid = perms2str($arr['allow_cid']); - $allow_gid = perms2str($arr['allow_gid']); - $deny_cid = perms2str($arr['deny_cid']); - $deny_gid = perms2str($arr['deny_gid']); + + + if(local_user() == $uid) { + $channel = get_app()->get_channel(); + } + + if ((! $arr['contact_allow']) + && (! $arr['group_allow']) + && (! $arr['contact_deny']) + && (! $arr['group_deny'])) { + $str_group_allow = $channel['channel_allow_gid']; + $str_contact_allow = $channel['channel_allow_cid']; + $str_group_deny = $channel['channel_deny_gid']; + $str_contact_deny = $channel['channel_deny_cid']; + } + else { + + // use the posted permissions + + $str_group_allow = perms2str($arr['group_allow']); + $str_contact_allow = perms2str($arr['contact_allow']); + $str_group_deny = perms2str($arr['group_deny']); + $str_contact_deny = perms2str($arr['contact_deny']); + } + $r = q("update menu_item set mitem_link = '%s', mitem_desc = '%s', mitem_flags = %d, allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', mitem_order = %d where mitem_channel_id = %d and mitem_menu_id = %d and mitem_id = %d limit 1", dbesc($mitem_link), dbesc($mitem_desc), intval($mitem_flags), - dbesc($allow_cid), - dbesc($allow_gid), - dbesc($deny_cid), - dbesc($deny_gid), + dbesc($str_contact_allow), + dbesc($str_group_allow), + dbesc($str_contact_deny), + dbesc($str_group_deny), intval($mitem_order), intval($uid), intval($menu_id), diff --git a/mod/mitem.php b/mod/mitem.php index 6a5785114..8e60e2d65 100644 --- a/mod/mitem.php +++ b/mod/mitem.php @@ -1,6 +1,7 @@ <?php require_once('include/menu.php'); +require_once('include/acl_selectors.php'); function mitem_init(&$a) { if(! local_user()) @@ -25,6 +26,9 @@ function mitem_post(&$a) { if(! $a->data['menu']) return; + + $channel = $a->get_channel(); + $_REQUEST['mitem_channel_id'] = local_user(); $_REQUEST['menu_id'] = $a->data['menu']['menu_id']; @@ -34,29 +38,6 @@ function mitem_post(&$a) { if($_REQUEST['newwin']) $_REQUEST['mitem_flags'] |= MENU_ITEM_NEWWIN; -// FIXME!!!! - - if ((! $_REQUEST['contact_allow']) - && (! $_REQUEST['group_allow']) - && (! $_REQUEST['contact_deny']) - && (! $_REQUEST['group_deny'])) { - $str_group_allow = $channel['channel_allow_gid']; - $str_contact_allow = $channel['channel_allow_cid']; - $str_group_deny = $channel['channel_deny_gid']; - $str_contact_deny = $channel['channel_deny_cid']; - } - else { - - // use the posted permissions - - $str_group_allow = perms2str($_REQUEST['group_allow']); - $str_contact_allow = perms2str($_REQUEST['contact_allow']); - $str_group_deny = perms2str($_REQUEST['group_deny']); - $str_contact_deny = perms2str($_REQUEST['contact_deny']); - } - - - $mitem_id = ((argc() > 2) ? intval(argv(2)) : 0); if($mitem_id) { @@ -98,6 +79,8 @@ function mitem_content(&$a) { return ''; } + $channel = $a->get_channel(); + $a->set_widget('design',design_tools()); @@ -135,11 +118,24 @@ function mitem_content(&$a) { if(argc() > 2) { + + + if(argv(2) === 'new') { + $perm_defaults = array( + 'allow_cid' => $channel['channel_allow_cid'], + 'allow_gid' => $channel['channel_allow_gid'], + 'deny_cid' => $channel['channel_deny_cid'], + 'deny_gid' => $channel['channel_deny_gid'] + ); + $o = replace_macros(get_markup_template('mitemedit.tpl'), array( '$header' => t('New Menu Element'), '$menu_id' => $a->data['menu']['menu_id'], + '$permissions' => t('Menu Item Permissions'), + '$permdesc' => t("\x28click to open/close\x29"), + '$aclselect' => populate_acl($perm_defaults), '$mitem_desc' => array('mitem_desc', t('Link text'), '', '','*'), '$mitem_link' => array('mitem_link', t('URL of link'), '', '', '*'), '$usezid' => array('usezid', t('Use Red magic-auth if available'), true, ''), @@ -180,6 +176,9 @@ function mitem_content(&$a) { $o = replace_macros(get_markup_template('mitemedit.tpl'), array( '$header' => t('Edit Menu Element'), '$menu_id' => $a->data['menu']['menu_id'], + '$permissions' => t('Menu Item Permissions'), + '$permdesc' => t("\x28click to open/close\x29"), + '$aclselect' => populate_acl($mitem), '$mitem_id' => intval(argv(2)), '$mitem_desc' => array('mitem_desc', t('Link text'), $mitem['mitem_desc'], '','*'), '$mitem_link' => array('mitem_link', t('URL of link'), $mitem['mitem_link'], '', '*'), diff --git a/view/js/mod_mitem.js b/view/js/mod_mitem.js new file mode 100644 index 000000000..d33713ee3 --- /dev/null +++ b/view/js/mod_mitem.js @@ -0,0 +1,22 @@ +$(document).ready(function() { + + $("a#settings-default-perms-menu").colorbox({ + 'inline' : true, + 'transition' : 'elastic' + }); + + + $('#contact_allow, #contact_deny, #group_allow, #group_deny').change(function() { + var selstr; + $('#contact_allow option:selected, #contact_deny option:selected, #group_allow option:selected, #group_deny option:selected').each( function() { + selstr = $(this).text(); + $('#jot-perms-icon').removeClass('unlock').addClass('lock'); + $('#jot-public').hide(); + }); + if(selstr == null) { + $('#jot-perms-icon').removeClass('lock').addClass('unlock'); + $('#jot-public').show(); + } + + }).trigger('change'); +}); diff --git a/view/tpl/mitemedit.tpl b/view/tpl/mitemedit.tpl index ef61be809..8f13f80c9 100644 --- a/view/tpl/mitemedit.tpl +++ b/view/tpl/mitemedit.tpl @@ -14,6 +14,26 @@ {{include file="field_input.tpl" field=$mitem_order}} {{include file="field_checkbox.tpl" field=$usezid}} {{include file="field_checkbox.tpl" field=$newwin}} + +<div id="settings-default-perms" class="settings-default-perms" > + <a href="#profile-jot-acl-wrapper" id="settings-default-perms-menu" >{{$permissions}} {{$permdesc}}</a> + <div id="settings-default-perms-menu-end"></div> + + <div id="settings-default-perms-select" style="display: none; margin-bottom: 20px" > + + <div style="display: none;"> + <div id="profile-jot-acl-wrapper" style="width:auto;height:auto;overflow:auto;"> + {{$aclselect}} + </div> + </div> + + </div> +</div> +<br/> +<div id="settings-default-perms-end"></div> + + + <div class="mitemedit-submit-wrapper" > <input type="submit" name="submit" class="mitemedit-submit" value="{{$submit}}" /> </div> |