Namokonov

Untitled

Feb 10th, 2022 (edited)
677
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const from_hour = 0;
  2. const to_hour = 23;
  3.  
  4. function main() {
  5.   //получаем свой емейл
  6.   const email = Session.getActiveUser().getEmail();
  7.  
  8.   //определяем активную таблицу
  9.   const ss = SpreadsheetApp.getActive();
  10.  
  11.   //получаем время
  12.   const time = new Date().getHours();
  13.  
  14.   //если время в заданных в 1 и 2 строке рамках - запускаем функцию "из просмотра в редакторы"
  15.   if (time >= from_hour && time <= to_hour) {
  16.     from_view_to_edit(ss);
  17.  
  18.     //если время не в заданных в 1 и 2 строке рамках - запускаем функцию "из редакторов в просмотр"
  19.   } else {
  20.     from_edit_to_view(ss, email);
  21.   }
  22. }
  23.  
  24. //превращаем всех пользователей с правами просмотр в редакторов
  25. function from_view_to_edit(ss) {
  26.   //получаем всех пользователей с правами просмотр
  27.   const users = ss.getViewers();
  28.  
  29.   //цикл по пользователям с правами просмотр
  30.   for (n in users) {
  31.     const user = users[n];
  32.  
  33.     //пытаемся поменять право пользователя с просмотра на редактирование
  34.     try {
  35.       ss.addEditor(user);
  36.     } catch (err) { }
  37.   }
  38. }
  39.  
  40. //меняем права всех пользователей, которых сможем на просмотр
  41. function from_edit_to_view(ss, email) {
  42.   //получаем всех пользователей с правами редактирование и убираем свой емейл;
  43.   const users = ss.getEditors().filter(r => r != email);
  44.  
  45.   //цикл по пользователям с правами просмотр
  46.   for (n in users) {
  47.     const user = users[n];
  48.  
  49.     try {
  50.       //убираем пользователя как редактора
  51.       ss.removeEditor(user);
  52.  
  53.       //добавляем пользователя как вьювера
  54.       ss.addViewer(user);
  55.     } catch (err) { }
  56.   }
  57. }
Add Comment
Please, Sign In to add comment