Creating a support level user for Pro Sites with Super Admin rights

I have been trying to achieve this with a few different plugins and yet to come up with an easy solution.

What I want to do is create a new user role for support team members that can access all sites on the network and all the support system tickets and FAQ's. I don't want them to be able to change core settings for the network or change pro sites settings either but they much be able to see pro sites signups, coupons and reports.

I've tried Extend Super Admin plugin and User role editor pro but can't seem to achieve this?

  • Lakewood

    I have tried the Moderation plugin and it doesn't really solve the issue as I would still have to enable the user as a super admin to access the network dashboard to see all blogs and users.

    I have managed to create a new user roles called Support Team and I've user Extend Super Admin to reduce their control. They can access the network dashboard but can't see settings etc. All I need to do is allow them to manage Pro Sites sites but not Pro Sites settings if that makes sense. Maybe the key would be to edit the permissions to Pro Sites sites to match the permissions to view all sites on a network.

  • Bojan Radonic

    Hey there @Adam Haworth, hope you're well today!

    I've been trying to play with User Role Editor and to try to remove capabilities from super admins but it appears that it is not possible. Super admin is not a specific role, it is just one capability that is assigned to administrators so they have access to network settings so I do not believe this could be done.

    There is admin side protection that can be used by using our Membership 2 plugin but it also can't protect parts of the network admin since that is only available to super admin, it can only work per site.

    Best regards,
    Bojan

  • Lakewood

    Short term fix I know.

    I have edited the permissions within the pro-sites.php file to change the permissions on Manage sites, Statistics and Coupons to 'manage_network; instead of 'manage_network_options'. This is on line 846 to 878:

    //main page
    		$psts_main_page         = add_menu_page( __( 'Pro Sites', 'psts' ), __( 'Pro Sites', 'psts' ), 'manage_network', 'psts', array(
    			&$this,
    			'admin_modify'
    		), 'dashicons-plus' );
    		$psts_manage_sites_page = add_submenu_page( 'psts', __( 'Manage Sites', 'psts' ), __( 'Manage Sites', 'psts' ), 'manage_network', 'psts', array(
    			&$this,
    			'admin_modify'
    		) );
    
    		do_action( 'psts_page_after_main' );
    
    		//stats page
    		$psts_stats_page = add_submenu_page( 'psts', __( 'Pro Sites Statistics', 'psts' ), __( 'Statistics', 'psts' ), 'manage_network', 'psts-stats', array(
    			&$this,
    			'admin_stats'
    		) );
    
    		do_action( 'psts_page_after_stats' );
    
    		//coupons page
    //		$psts_coupons_page_old = add_submenu_page( 'psts', __( 'Pro Sites Coupons', 'psts' ), __( 'Coupons', 'psts' ), 'manage_network_options', 'psts-coupons-old', array(
    //			&$this,
    //			'admin_coupons'
    //		) );
    
    		//ProSites_View_Coupons
    		$psts_coupons_page = add_submenu_page( 'psts', ProSites_View_Coupons::get_page_name(), ProSites_View_Coupons::get_menu_name(), 'manage_network', ProSites_View_Coupons::get_page_slug(), array(
    			'ProSites_View_Coupons',
    			'render_page'
    		) );
    		do_action( 'psts_page_after_coupons' );

    I need to find a more permanent solution as this will obviously break when an update is released, but just incase anyone else is trying to achieve this.

  • Bojan Radonic

    Hey there @Adam Haworth,

    Glad you managed to figure that out. As for granting access to Pro Sites in admin partially and only allowing access to Manage Sites, this would most likely have to be custom coded so I'll include an available SLS developer for his opinion on this and possibly some guidance on how this could be done.

    Please note that, developer response might be slower than usual staff response, so we appreciate your patience on this.

    Best regards,
    Bojan